* Makefile.in (DLL_OFILES): Add tls_pbuf.o.
* autoload.cc (CreateDesktopW): Replace CreateDesktopA. (CreateWindowStationW): Replace CreateWindowStationA. (GetUserObjectInformationW): Replace GetUserObjectInformationA. * cygheap.h (cwdstuff::get): Assume default buffer size NT_MAX_PATH. * cygtls.cc (_cygtls::remove): Free temporary TLS path buffers. * cygtls.h (TP_NUM_C_BUFS): Define. (TP_NUM_W_BUFS): Define. (class tls_pathbuf): New class to store pointers to thread local temporary path buffers. (_local_storage::pathbufs): New member. * environ.cc (win_env::add_cache): Use temporary TLS path buffer instead of stack based buffer. (posify): Get temporary outenv buffer from calling function. (environ_init): Create temporary TLS path buffer for posify. (build_env): Create Windows environment block as WCHAR buffer. * environ.h (build_env): Change declaration accordingly. * external.cc (sync_winenv): Accommodate build_env change. * fhandler_console.cc (fhandler_console::need_invisible): Use GetUserObjectInformationW and CreateWindowStationW. * fhandler_process.cc (format_process_maps): Use temporary TLS path buffer instead of stack based buffer. * fork.cc (frok::parent): Convert to use CreateProcessW. * path.cc: Throughout use temporary TLS path buffers instead of stack based buffer. Replace checks for CYG_MAX_PATH by checks for NT_MAX_PATH. (getfileattr): New function to replace GetFileAttributesA. (normalize_win32_path): Remove Win32 and NT long path prefixes. (getwd): Assume PATH_MAX + 1 buffer per SUSv3. * path.h (class path_conv): Set path buffer to size NT_MAX_PATH. (iswdrive): Define. * pinfo.cc (commune_process): Use temporary TLS path buffer instead of stack based buffer. * registry.cc (get_registry_hive_path): Ditto. (load_registry_hive): Ditto. * spawn.cc (spawn_guts): Convert to use CreateProcessW and CreateProcessAsUserW. (av::fixup): Open/close file using NtOpenFile/NtClose. * syscalls.cc (mknod_worker): Allow PATH_MAX file name. (mknod32): Ditto. (getusershell): Ditto. * tls_pbuf.cc: New file implementing tls_pathbuf and tmp_pathbuf methods. * tls_pbuf.h: New header for files using tmp_pathbuf. * tlsoffsets.h: Regenerate. * winsup.h (NT_MAX_PATH): Define as 32767 to avoid USHORT overflow.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
//;# autogenerated: Do not edit.
|
||||
|
||||
//; $tls::sizeof__cygtls = 4196;
|
||||
//; $tls::sizeof__cygtls = 4284;
|
||||
//; $tls::func = -12700;
|
||||
//; $tls::pfunc = 0;
|
||||
//; $tls::el = -12696;
|
||||
@@ -39,30 +39,30 @@
|
||||
//; $tls::p__dontuse = 420;
|
||||
//; $tls::locals = -11216;
|
||||
//; $tls::plocals = 1484;
|
||||
//; $tls::_ctinfo = -9600;
|
||||
//; $tls::p_ctinfo = 3100;
|
||||
//; $tls::andreas = -9596;
|
||||
//; $tls::pandreas = 3104;
|
||||
//; $tls::wq = -9588;
|
||||
//; $tls::pwq = 3112;
|
||||
//; $tls::prev = -9560;
|
||||
//; $tls::pprev = 3140;
|
||||
//; $tls::next = -9556;
|
||||
//; $tls::pnext = 3144;
|
||||
//; $tls::sig = -9552;
|
||||
//; $tls::psig = 3148;
|
||||
//; $tls::incyg = -9548;
|
||||
//; $tls::pincyg = 3152;
|
||||
//; $tls::spinning = -9544;
|
||||
//; $tls::pspinning = 3156;
|
||||
//; $tls::stacklock = -9540;
|
||||
//; $tls::pstacklock = 3160;
|
||||
//; $tls::stackptr = -9536;
|
||||
//; $tls::pstackptr = 3164;
|
||||
//; $tls::stack = -9532;
|
||||
//; $tls::pstack = 3168;
|
||||
//; $tls::initialized = -8508;
|
||||
//; $tls::pinitialized = 4192;
|
||||
//; $tls::_ctinfo = -9512;
|
||||
//; $tls::p_ctinfo = 3188;
|
||||
//; $tls::andreas = -9508;
|
||||
//; $tls::pandreas = 3192;
|
||||
//; $tls::wq = -9500;
|
||||
//; $tls::pwq = 3200;
|
||||
//; $tls::prev = -9472;
|
||||
//; $tls::pprev = 3228;
|
||||
//; $tls::next = -9468;
|
||||
//; $tls::pnext = 3232;
|
||||
//; $tls::sig = -9464;
|
||||
//; $tls::psig = 3236;
|
||||
//; $tls::incyg = -9460;
|
||||
//; $tls::pincyg = 3240;
|
||||
//; $tls::spinning = -9456;
|
||||
//; $tls::pspinning = 3244;
|
||||
//; $tls::stacklock = -9452;
|
||||
//; $tls::pstacklock = 3248;
|
||||
//; $tls::stackptr = -9448;
|
||||
//; $tls::pstackptr = 3252;
|
||||
//; $tls::stack = -9444;
|
||||
//; $tls::pstack = 3256;
|
||||
//; $tls::initialized = -8420;
|
||||
//; $tls::pinitialized = 4280;
|
||||
//; __DATA__
|
||||
|
||||
#define tls_func (-12700)
|
||||
@@ -103,27 +103,27 @@
|
||||
#define tls_p__dontuse (420)
|
||||
#define tls_locals (-11216)
|
||||
#define tls_plocals (1484)
|
||||
#define tls__ctinfo (-9600)
|
||||
#define tls_p_ctinfo (3100)
|
||||
#define tls_andreas (-9596)
|
||||
#define tls_pandreas (3104)
|
||||
#define tls_wq (-9588)
|
||||
#define tls_pwq (3112)
|
||||
#define tls_prev (-9560)
|
||||
#define tls_pprev (3140)
|
||||
#define tls_next (-9556)
|
||||
#define tls_pnext (3144)
|
||||
#define tls_sig (-9552)
|
||||
#define tls_psig (3148)
|
||||
#define tls_incyg (-9548)
|
||||
#define tls_pincyg (3152)
|
||||
#define tls_spinning (-9544)
|
||||
#define tls_pspinning (3156)
|
||||
#define tls_stacklock (-9540)
|
||||
#define tls_pstacklock (3160)
|
||||
#define tls_stackptr (-9536)
|
||||
#define tls_pstackptr (3164)
|
||||
#define tls_stack (-9532)
|
||||
#define tls_pstack (3168)
|
||||
#define tls_initialized (-8508)
|
||||
#define tls_pinitialized (4192)
|
||||
#define tls__ctinfo (-9512)
|
||||
#define tls_p_ctinfo (3188)
|
||||
#define tls_andreas (-9508)
|
||||
#define tls_pandreas (3192)
|
||||
#define tls_wq (-9500)
|
||||
#define tls_pwq (3200)
|
||||
#define tls_prev (-9472)
|
||||
#define tls_pprev (3228)
|
||||
#define tls_next (-9468)
|
||||
#define tls_pnext (3232)
|
||||
#define tls_sig (-9464)
|
||||
#define tls_psig (3236)
|
||||
#define tls_incyg (-9460)
|
||||
#define tls_pincyg (3240)
|
||||
#define tls_spinning (-9456)
|
||||
#define tls_pspinning (3244)
|
||||
#define tls_stacklock (-9452)
|
||||
#define tls_pstacklock (3248)
|
||||
#define tls_stackptr (-9448)
|
||||
#define tls_pstackptr (3252)
|
||||
#define tls_stack (-9444)
|
||||
#define tls_pstack (3256)
|
||||
#define tls_initialized (-8420)
|
||||
#define tls_pinitialized (4280)
|
||||
|
Reference in New Issue
Block a user