diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2014-04-18 14:29:49 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2014-04-18 14:29:49 +0000 |
commit | 7ae3e6b3d47492b938966b923c4065b76cf8762a (patch) | |
tree | 36cd1c4b49e440ee70369e0d002eaec3c2fcd0d9 /winsup/cygwin/cygtls.h | |
parent | d98d7f397389cca8f96318a1644431012a6211be (diff) | |
download | newlib-7ae3e6b3d47492b938966b923c4065b76cf8762a.zip newlib-7ae3e6b3d47492b938966b923c4065b76cf8762a.tar.gz newlib-7ae3e6b3d47492b938966b923c4065b76cf8762a.tar.bz2 |
* cygtls.h (TP_NUM_C_BUFS): Raise to 50 to allow SYMLOOP_MAX recursions
path_conv <-> normalize_posix_path, plus a bit of buffer.
(TP_NUM_W_BUFS): Ditto.
(class san): Change type of _c_cnt and _w_cnt to unsigned.
* path.cc (normalize_posix_path): Guard recursion into path_conv
against tmp_pathbuf overflow. Generate normalized path in call to
path_conv. If the path is valid, replace dst with the normalized_path
from path_conv call. Add comment to explain why we're doing this.
* tls_pbuf.cc (tls_pathbuf::destroy): Only free buffers until the
first buffer pointer is NULL.
(tmp_pathbuf::c_get): Simplify error message.
(tmp_pathbuf::w_get): Ditto.
* tls_pbuf.h (class tmp_pathbuf): Change type of c_buf_old and w_buf_old
to unsigned.
(tmp_pathbuf::check_usage): New inline method to check if we have
enough tmp_pathbuf buffers left to call a function using tmp_pathbuf
buffers.
* tlsoffsets.h: Regenerate.
* tlsoffsets64.h: Regenerate.
Diffstat (limited to 'winsup/cygwin/cygtls.h')
-rw-r--r-- | winsup/cygwin/cygtls.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/winsup/cygwin/cygtls.h b/winsup/cygwin/cygtls.h index b76dd24..3283874 100644 --- a/winsup/cygwin/cygtls.h +++ b/winsup/cygwin/cygtls.h @@ -32,8 +32,8 @@ details. */ #include "cygthread.h" -#define TP_NUM_C_BUFS 10 -#define TP_NUM_W_BUFS 10 +#define TP_NUM_C_BUFS 50 +#define TP_NUM_W_BUFS 50 #ifdef CYGTLS_HANDLE #include "thread.h" @@ -290,8 +290,8 @@ class san san *_clemente; jmp_buf _context; int _errno; - int _c_cnt; - int _w_cnt; + unsigned _c_cnt; + unsigned _w_cnt; public: int setup (int myerrno = 0) __attribute__ ((always_inline)) { |