diff options
author | Christopher Faylor <me@cgf.cx> | 2007-11-27 00:30:49 +0300 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2007-11-27 00:30:49 +0300 |
commit | ee4388c4200ed46ebeb8509f6dd204a6476017dc (patch) | |
tree | 55fd4f1c7f8e169eb4aad0c646333be0cc2a1da3 | |
parent | 32cba6cb3a8366df854ba24ece2a60f1b2f872a3 (diff) |
Change many cygheap allocation routines to their *_abort analogs.
* cygheap.cc (cmalloc_abort): New function.
(crealloc_abort): Ditto.
(ccalloc_abort): Ditto.
-rw-r--r-- | winsup/cygwin/ChangeLog | 7 | ||||
-rw-r--r-- | winsup/cygwin/cygheap.cc | 82 | ||||
-rw-r--r-- | winsup/cygwin/cygheap.h | 3 | ||||
-rw-r--r-- | winsup/cygwin/cygtls.cc | 8 | ||||
-rw-r--r-- | winsup/cygwin/dtable.cc | 2 | ||||
-rw-r--r-- | winsup/cygwin/environ.cc | 8 | ||||
-rw-r--r-- | winsup/cygwin/fhandler_console.cc | 2 | ||||
-rw-r--r-- | winsup/cygwin/fhandler_dsp.cc | 2 | ||||
-rw-r--r-- | winsup/cygwin/fhandler_proc.cc | 16 | ||||
-rw-r--r-- | winsup/cygwin/fhandler_process.cc | 18 | ||||
-rw-r--r-- | winsup/cygwin/fhandler_registry.cc | 4 | ||||
-rw-r--r-- | winsup/cygwin/fhandler_tty.cc | 4 | ||||
-rw-r--r-- | winsup/cygwin/fhandler_virtual.cc | 2 | ||||
-rw-r--r-- | winsup/cygwin/hookapi.cc | 2 | ||||
-rw-r--r-- | winsup/cygwin/path.cc | 16 | ||||
-rw-r--r-- | winsup/cygwin/pinfo.cc | 10 | ||||
-rw-r--r-- | winsup/cygwin/sigproc.cc | 2 | ||||
-rw-r--r-- | winsup/cygwin/spawn.cc | 2 | ||||
-rw-r--r-- | winsup/cygwin/uinfo.cc | 2 | ||||
-rw-r--r-- | winsup/cygwin/winf.h | 2 |
20 files changed, 114 insertions, 80 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 73530df5a..df62e24bc 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,10 @@ +2007-11-26 Christopher Faylor <me+cygwin@cgf.cx> + + Change many cygheap allocation routines to their *_abort analogs. + * cygheap.cc (cmalloc_abort): New function. + (crealloc_abort): Ditto. + (ccalloc_abort): Ditto. + 2007-11-23 Christopher Faylor <me+cygwin@cgf.cx> * cygheap.cc (_crealloc): Avoid memcpy when _cmalloc returns NULL. diff --git a/winsup/cygwin/cygheap.cc b/winsup/cygwin/cygheap.cc index c25434188..b9f24eecc 100644 --- a/winsup/cygwin/cygheap.cc +++ b/winsup/cygwin/cygheap.cc @@ -249,13 +249,16 @@ _crealloc (void *ptr, unsigned size) #define tocygheap(s) ((cygheap_entry *) (((char *) (s)) - (int) (N->data))) inline static void * -creturn (cygheap_types x, cygheap_entry * c, unsigned len) +creturn (cygheap_types x, cygheap_entry * c, unsigned len, const char *fn = NULL) { if (!c) - { - set_errno (ENOMEM); - return NULL; - } + if (fn) + api_fatal ("%s would have returned NULL", fn); + else + { + set_errno (ENOMEM); + return NULL; + } c->type = x; char *cend = ((char *) c + sizeof (*c) + len); if (cygheap_max < cend) @@ -264,24 +267,29 @@ creturn (cygheap_types x, cygheap_entry * c, unsigned len) return (void *) c->data; } -extern "C" void *__stdcall -cmalloc (cygheap_types x, DWORD n) +inline static void * +cmalloc (cygheap_types x, DWORD n, const char *fn) { cygheap_entry *c; MALLOC_CHECK; c = (cygheap_entry *) _cmalloc (sizeof_cygheap (n)); - if (!c) - { -#ifdef DEBUGGING - system_printf ("cmalloc returned NULL"); - try_to_debug (); -#endif - } - return creturn (x, c, n); + return creturn (x, c, n, fn); } -extern "C" void *__stdcall -crealloc (void *s, DWORD n) +extern "C" void * +cmalloc (cygheap_types x, DWORD n) +{ + return cmalloc (x, n, NULL); +} + +extern "C" void * +cmalloc_abort (cygheap_types x, DWORD n) +{ + return cmalloc (x, n, "cmalloc"); +} + +inline static void * +crealloc (void *s, DWORD n, const char *fn) { MALLOC_CHECK; if (s == NULL) @@ -291,11 +299,19 @@ crealloc (void *s, DWORD n) cygheap_entry *c = tocygheap (s); cygheap_types t = (cygheap_types) c->type; c = (cygheap_entry *) _crealloc (c, sizeof_cygheap (n)); -#ifdef DEBUGGING - if (!c) - system_printf ("crealloc returned NULL"); -#endif - return creturn (t, c, n); + return creturn (t, c, n, fn); +} + +extern "C" void *__stdcall +crealloc (void *s, DWORD n) +{ + return crealloc (s, n, NULL); +} + +extern "C" void *__stdcall +crealloc_abort (void *s, DWORD n) +{ + return crealloc (s, n, "crealloc"); } extern "C" void __stdcall @@ -314,8 +330,8 @@ cfree_and_set (char *&s, char *what) s = what; } -extern "C" void *__stdcall -ccalloc (cygheap_types x, DWORD n, DWORD size) +inline static void * +ccalloc (cygheap_types x, DWORD n, DWORD size, const char *fn) { cygheap_entry *c; MALLOC_CHECK; @@ -323,11 +339,19 @@ ccalloc (cygheap_types x, DWORD n, DWORD size) c = (cygheap_entry *) _cmalloc (sizeof_cygheap (n)); if (c) memset (c->data, 0, n); -#ifdef DEBUGGING - if (!c) - system_printf ("ccalloc returned NULL"); -#endif - return creturn (x, c, n); + return creturn (x, c, n, fn); +} + +extern "C" void *__stdcall +ccalloc (cygheap_types x, DWORD n, DWORD size) +{ + return ccalloc (x, n, size, NULL); +} + +extern "C" void *__stdcall +ccalloc_abort (cygheap_types x, DWORD n, DWORD size) +{ + return ccalloc (x, n, size, "ccalloc"); } extern "C" char *__stdcall diff --git a/winsup/cygwin/cygheap.h b/winsup/cygwin/cygheap.h index bf93e4633..f51b9a1e9 100644 --- a/winsup/cygwin/cygheap.h +++ b/winsup/cygwin/cygheap.h @@ -418,6 +418,9 @@ void __stdcall cfree (void *) __attribute__ ((regparm(1))); void *__stdcall cmalloc (cygheap_types, DWORD) __attribute__ ((regparm(2))); void *__stdcall crealloc (void *, DWORD) __attribute__ ((regparm(2))); void *__stdcall ccalloc (cygheap_types, DWORD, DWORD) __attribute__ ((regparm(3))); +void *__stdcall cmalloc_abort (cygheap_types, DWORD) __attribute__ ((regparm(2))); +void *__stdcall crealloc_abort (void *, DWORD) __attribute__ ((regparm(2))); +void *__stdcall ccalloc_abort (cygheap_types, DWORD, DWORD) __attribute__ ((regparm(3))); char *__stdcall cstrdup (const char *) __attribute__ ((regparm(1))); char *__stdcall cstrdup1 (const char *) __attribute__ ((regparm(1))); void __stdcall cfree_and_set (char *&, char * = NULL) __attribute__ ((regparm(2))); diff --git a/winsup/cygwin/cygtls.cc b/winsup/cygwin/cygtls.cc index dbf9a0183..2bc7e85ba 100644 --- a/winsup/cygwin/cygtls.cc +++ b/winsup/cygwin/cygtls.cc @@ -53,8 +53,8 @@ _cygtls::init () else { cygheap->sthreads = THREADLIST_CHUNK; - cygheap->threadlist = (_cygtls **) ccalloc (HEAP_TLS, cygheap->sthreads, - sizeof (cygheap->threadlist[0])); + cygheap->threadlist = (_cygtls **) ccalloc_abort (HEAP_TLS, cygheap->sthreads, + sizeof (cygheap->threadlist[0])); } sentry::lock.init ("sentry_lock"); } @@ -119,8 +119,8 @@ _cygtls::init_thread (void *x, DWORD (*func) (void *, void *)) if (nthreads >= cygheap->sthreads) { cygheap->threadlist = (_cygtls **) - crealloc (cygheap->threadlist, (cygheap->sthreads += THREADLIST_CHUNK) - * sizeof (cygheap->threadlist[0])); + crealloc_abort (cygheap->threadlist, (cygheap->sthreads += THREADLIST_CHUNK) + * sizeof (cygheap->threadlist[0])); memset (cygheap->threadlist + nthreads, 0, THREADLIST_CHUNK * sizeof (cygheap->threadlist[0])); } diff --git a/winsup/cygwin/dtable.cc b/winsup/cygwin/dtable.cc index f130a2ef7..fc9b3a7e2 100644 --- a/winsup/cygwin/dtable.cc +++ b/winsup/cygwin/dtable.cc @@ -844,7 +844,7 @@ handle_to_fn (HANDLE h, char *posix_fn) NTSTATUS res = NtQueryObject (h, ObjectNameInformation, ntfn, sizeof (fnbuf), NULL); - if (NT_SUCCESS (res)) + if (!NT_SUCCESS (res)) { strcpy (posix_fn, unknown_file); debug_printf ("NtQueryObject failed"); diff --git a/winsup/cygwin/environ.cc b/winsup/cygwin/environ.cc index 54063d889..e91cc5ad2 100644 --- a/winsup/cygwin/environ.cc +++ b/winsup/cygwin/environ.cc @@ -248,7 +248,7 @@ getearly (const char * name, int *) return *ptr + len + 1; } else if ((len = GetEnvironmentVariable (name, NULL, 0)) - && (ret = (char *) cmalloc (HEAP_2_STR, len)) + && (ret = (char *) cmalloc_abort (HEAP_2_STR, len)) && GetEnvironmentVariable (name, ret, len)) return ret; @@ -848,7 +848,7 @@ getwinenveq (const char *name, size_t namelen, int x) totlen += namelen; else namelen = 0; - char *p = (char *) cmalloc ((cygheap_types) x, totlen); + char *p = (char *) cmalloc_abort ((cygheap_types) x, totlen); if (namelen) strcpy (p, name); if (GetEnvironmentVariable (name0, p + namelen, totlen)) @@ -919,7 +919,7 @@ spenv::retrieve (bool no_envblock, const char *const env) p = (cygheap->user.*from_cygheap) (name, namelen); if (!p || (no_envblock && !env) || (p == env_dontadd)) return env_dontadd; - char *s = (char *) cmalloc (HEAP_1_STR, namelen + strlen (p) + 1); + char *s = (char *) cmalloc_abort (HEAP_1_STR, namelen + strlen (p) + 1); strcpy (s, name); strcpy (s + namelen, p); debug_printf ("using computed value for '%s'", name); @@ -954,7 +954,7 @@ build_env (const char * const *envp, char *&envblock, int &envc, continue; /* Allocate a new "argv-style" environ list with room for extra stuff. */ - char **newenv = (char **) cmalloc (HEAP_1_ARGV, sizeof (char *) * + char **newenv = (char **) cmalloc_abort (HEAP_1_ARGV, sizeof (char *) * (n + SPENVS_SIZE + 1)); int tl = 0; diff --git a/winsup/cygwin/fhandler_console.cc b/winsup/cygwin/fhandler_console.cc index a37cf5869..e4afe16d5 100644 --- a/winsup/cygwin/fhandler_console.cc +++ b/winsup/cygwin/fhandler_console.cc @@ -1241,7 +1241,7 @@ fhandler_console::char_command (char c) if (dev_state->savebuf) cfree (dev_state->savebuf); - dev_state->savebuf = (PCHAR_INFO) cmalloc (HEAP_1_BUF, sizeof (CHAR_INFO) * + dev_state->savebuf = (PCHAR_INFO) cmalloc_abort (HEAP_1_BUF, sizeof (CHAR_INFO) * dev_state->savebufsiz.X * dev_state->savebufsiz.Y); ReadConsoleOutputA (get_output_handle (), dev_state->savebuf, diff --git a/winsup/cygwin/fhandler_dsp.cc b/winsup/cygwin/fhandler_dsp.cc index b9b5af43f..8ef89bf6b 100644 --- a/winsup/cygwin/fhandler_dsp.cc +++ b/winsup/cygwin/fhandler_dsp.cc @@ -983,7 +983,7 @@ fhandler_dev_dsp::open (int flags, mode_t mode) nohandle (true); // FIXME: Do this better someday - fhandler_dev_dsp *arch = (fhandler_dev_dsp *) cmalloc (HEAP_ARCHETYPES, sizeof (*this)); + fhandler_dev_dsp *arch = (fhandler_dev_dsp *) cmalloc_abort (HEAP_ARCHETYPES, sizeof (*this)); archetype = arch; *((fhandler_dev_dsp **) cygheap->fdtab.add_archetype ()) = arch; *arch = *this; diff --git a/winsup/cygwin/fhandler_proc.cc b/winsup/cygwin/fhandler_proc.cc index ce0892eda..608faf5b9 100644 --- a/winsup/cygwin/fhandler_proc.cc +++ b/winsup/cygwin/fhandler_proc.cc @@ -357,7 +357,7 @@ fhandler_proc::fill_filebuf () bufalloc = strlen (uts_name.sysname) + 1 + strlen (uts_name.release) + 1 + strlen (uts_name.version) + 2; - filebuf = (char *) crealloc (filebuf, bufalloc); + filebuf = (char *) crealloc_abort (filebuf, bufalloc); filesize = __small_sprintf (filebuf, "%s %s %s\n", uts_name.sysname, uts_name.release, uts_name.version); @@ -366,13 +366,13 @@ fhandler_proc::fill_filebuf () } case PROC_UPTIME: { - filebuf = (char *) crealloc (filebuf, bufalloc = 80); + filebuf = (char *) crealloc_abort (filebuf, bufalloc = 80); filesize = format_proc_uptime (filebuf, bufalloc); break; } case PROC_STAT: { - filebuf = (char *) crealloc (filebuf, bufalloc = 16384); + filebuf = (char *) crealloc_abort (filebuf, bufalloc = 16384); filesize = format_proc_stat (filebuf, bufalloc); break; } @@ -383,32 +383,32 @@ fhandler_proc::fill_filebuf () * Windows 95/98/me does have the KERNEL/CPUUsage performance counter * which is similar. */ - filebuf = (char *) crealloc (filebuf, bufalloc = 16); + filebuf = (char *) crealloc_abort (filebuf, bufalloc = 16); filesize = __small_sprintf (filebuf, "%u.%02u %u.%02u %u.%02u\n", 0, 0, 0, 0, 0, 0); break; } case PROC_MEMINFO: { - filebuf = (char *) crealloc (filebuf, bufalloc = 2048); + filebuf = (char *) crealloc_abort (filebuf, bufalloc = 2048); filesize = format_proc_meminfo (filebuf, bufalloc); break; } case PROC_CPUINFO: { - filebuf = (char *) crealloc (filebuf, bufalloc = 16384); + filebuf = (char *) crealloc_abort (filebuf, bufalloc = 16384); filesize = format_proc_cpuinfo (filebuf, bufalloc); break; } case PROC_PARTITIONS: { - filebuf = (char *) crealloc (filebuf, bufalloc = 4096); + filebuf = (char *) crealloc_abort (filebuf, bufalloc = 4096); filesize = format_proc_partitions (filebuf, bufalloc); break; } case PROC_SELF: { - filebuf = (char *) crealloc (filebuf, bufalloc = 32); + filebuf = (char *) crealloc_abort (filebuf, bufalloc = 32); filesize = __small_sprintf (filebuf, "%d", getpid ()); } } diff --git a/winsup/cygwin/fhandler_process.cc b/winsup/cygwin/fhandler_process.cc index 6ba9fd4cc..758c34d3e 100644 --- a/winsup/cygwin/fhandler_process.cc +++ b/winsup/cygwin/fhandler_process.cc @@ -379,7 +379,7 @@ fhandler_process::fill_filebuf () case PROCESS_CTTY: case PROCESS_PPID: { - filebuf = (char *) crealloc (filebuf, bufalloc = 40); + filebuf = (char *) crealloc_abort (filebuf, bufalloc = 40); int num; switch (fileid) { @@ -442,7 +442,7 @@ fhandler_process::fill_filebuf () case PROCESS_EXENAME: case PROCESS_EXE: { - filebuf = (char *) crealloc (filebuf, bufalloc = CYG_MAX_PATH); + filebuf = (char *) crealloc_abort (filebuf, bufalloc = CYG_MAX_PATH); if (p->process_state & PID_EXITED) strcpy (filebuf, "<defunct>"); else @@ -466,7 +466,7 @@ fhandler_process::fill_filebuf () } case PROCESS_WINPID: { - filebuf = (char *) crealloc (filebuf, bufalloc = 40); + filebuf = (char *) crealloc_abort (filebuf, bufalloc = 40); __small_sprintf (filebuf, "%d\n", p->dwProcessId); filesize = strlen (filebuf); break; @@ -474,7 +474,7 @@ fhandler_process::fill_filebuf () case PROCESS_WINEXENAME: { int len = strlen (p->progname); - filebuf = (char *) crealloc (filebuf, bufalloc = (len + 2)); + filebuf = (char *) crealloc_abort (filebuf, bufalloc = (len + 2)); strcpy (filebuf, p->progname); filebuf[len] = '\n'; filesize = len + 1; @@ -482,25 +482,25 @@ fhandler_process::fill_filebuf () } case PROCESS_STATUS: { - filebuf = (char *) crealloc (filebuf, bufalloc = 2048); + filebuf = (char *) crealloc_abort (filebuf, bufalloc = 2048); filesize = format_process_status (*p, filebuf, bufalloc); break; } case PROCESS_STAT: { - filebuf = (char *) crealloc (filebuf, bufalloc = 2048); + filebuf = (char *) crealloc_abort (filebuf, bufalloc = 2048); filesize = format_process_stat (*p, filebuf, bufalloc); break; } case PROCESS_STATM: { - filebuf = (char *) crealloc (filebuf, bufalloc = 2048); + filebuf = (char *) crealloc_abort (filebuf, bufalloc = 2048); filesize = format_process_statm (*p, filebuf, bufalloc); break; } case PROCESS_MAPS: { - filebuf = (char *) crealloc (filebuf, bufalloc = 2048); + filebuf = (char *) crealloc_abort (filebuf, bufalloc = 2048); filesize = format_process_maps (*p, filebuf, bufalloc); break; } @@ -563,7 +563,7 @@ format_process_maps (_pinfo *p, char *&destbuf, size_t maxsize) st.st_ino = 0; } if (len + strlen (posix_modname) + 62 > maxsize - 1) - destbuf = (char *) crealloc (destbuf, maxsize += 2048); + destbuf = (char *) crealloc_abort (destbuf, maxsize += 2048); if (workingset) for (unsigned i = 1; i <= wset_size; ++i) { diff --git a/winsup/cygwin/fhandler_registry.cc b/winsup/cygwin/fhandler_registry.cc index 23d88c82a..525d3c3a3 100644 --- a/winsup/cygwin/fhandler_registry.cc +++ b/winsup/cygwin/fhandler_registry.cc @@ -592,7 +592,7 @@ fhandler_registry::fill_filebuf () goto value_not_found; } bufalloc = size; - filebuf = (char *) cmalloc (HEAP_BUF, bufalloc); + filebuf = (char *) cmalloc_abort (HEAP_BUF, bufalloc); error = RegQueryValueEx (handle, value_name, NULL, NULL, (BYTE *) filebuf, &size); @@ -609,7 +609,7 @@ fhandler_registry::fill_filebuf () do { bufalloc += 1000; - filebuf = (char *) crealloc (filebuf, bufalloc); + filebuf = (char *) crealloc_abort (filebuf, bufalloc); size = bufalloc; error = RegQueryValueEx (handle, value_name, NULL, &type, (BYTE *) filebuf, &size); diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc index 6a58ab0af..e86531ef0 100644 --- a/winsup/cygwin/fhandler_tty.cc +++ b/winsup/cygwin/fhandler_tty.cc @@ -601,7 +601,7 @@ fhandler_tty_slave::open (int flags, mode_t) fhandler_console::need_invisible (); // FIXME: Do this better someday - arch = (fhandler_tty_slave *) cmalloc (HEAP_ARCHETYPES, sizeof (*this)); + arch = (fhandler_tty_slave *) cmalloc_abort (HEAP_ARCHETYPES, sizeof (*this)); *((fhandler_tty_slave **) cygheap->fdtab.add_archetype ()) = arch; archetype = arch; *arch = *this; @@ -1127,7 +1127,7 @@ fhandler_pty_master::open (int flags, mode_t) set_open_status (); // // FIXME: Do this better someday - fhandler_pty_master *arch = (fhandler_tty_master *) cmalloc (HEAP_ARCHETYPES, sizeof (*this)); + fhandler_pty_master *arch = (fhandler_tty_master *) cmalloc_abort (HEAP_ARCHETYPES, sizeof (*this)); *((fhandler_pty_master **) cygheap->fdtab.add_archetype ()) = arch; archetype = arch; *arch = *this; diff --git a/winsup/cygwin/fhandler_virtual.cc b/winsup/cygwin/fhandler_virtual.cc index 4db2cf726..2c0425dfb 100644 --- a/winsup/cygwin/fhandler_virtual.cc +++ b/winsup/cygwin/fhandler_virtual.cc @@ -164,7 +164,7 @@ fhandler_virtual::dup (fhandler_base * child) if (!ret) { fhandler_virtual *fhproc_child = (fhandler_virtual *) child; - fhproc_child->filebuf = (char *) cmalloc (HEAP_BUF, filesize); + fhproc_child->filebuf = (char *) cmalloc_abort (HEAP_BUF, filesize); fhproc_child->bufalloc = fhproc_child->filesize = filesize; fhproc_child->position = position; memcpy (fhproc_child->filebuf, filebuf, filesize); diff --git a/winsup/cygwin/hookapi.cc b/winsup/cygwin/hookapi.cc index 76271ef83..7f8917a71 100644 --- a/winsup/cygwin/hookapi.cc +++ b/winsup/cygwin/hookapi.cc @@ -107,7 +107,7 @@ RedirectIAT (function_hook& fh, PIMAGE_IMPORT_DESCRIPTOR pImportDesc, hook_chain *hc; for (hc = &cygheap->hooks; hc->next; hc = hc->next) continue; - hc->next = (hook_chain *) cmalloc (HEAP_1_HOOK, sizeof (hook_chain)); + hc->next = (hook_chain *) cmalloc_abort (HEAP_1_HOOK, sizeof (hook_chain)); hc->next->loc = (void **) pi; hc->next->func = fh.hookfn; hc->next->next = NULL; diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index a10a29339..4253a0291 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -535,7 +535,7 @@ path_conv::set_normalized_path (const char *path_copy, bool strip_tail) normalized_path_size = n; else { - normalized_path = (char *) cmalloc (HEAP_STR, n); + normalized_path = (char *) cmalloc_abort (HEAP_STR, n); normalized_path_size = 0; } @@ -543,7 +543,7 @@ path_conv::set_normalized_path (const char *path_copy, bool strip_tail) } PUNICODE_STRING -get_nt_native_path (const char *path, UNICODE_STRING &upath) +get_nt_native_path (const char *path, UNICODE_STRING& upath) { upath.Length = 0; if (path[0] == '/') /* special path w/o NT path representation. */ @@ -576,7 +576,7 @@ path_conv::get_nt_native_path () { uni_path.Length = 0; uni_path.MaximumLength = (strlen (path) + 10) * sizeof (WCHAR); - wide_path = (PWCHAR) cmalloc (HEAP_STR, uni_path.MaximumLength); + wide_path = (PWCHAR) cmalloc_abort (HEAP_STR, uni_path.MaximumLength); uni_path.Buffer = wide_path; ::get_nt_native_path (path, uni_path); } @@ -4479,8 +4479,8 @@ skip_peb_storing: RtlAcquirePebLock (); pdir = &get_user_proc_parms ()->CurrentDirectoryName; RtlInitEmptyUnicodeString (&win32, - (PWCHAR) crealloc (win32.Buffer, - pdir->Length + 2), + (PWCHAR) crealloc_abort (win32.Buffer, + pdir->Length + 2), pdir->Length + 2); RtlCopyUnicodeString (&win32, pdir); RtlReleasePebLock (); @@ -4504,8 +4504,8 @@ skip_peb_storing: else if (upath.Length > 3 * sizeof (WCHAR)) upath.Length -= sizeof (WCHAR); /* Strip trailing backslash */ RtlInitEmptyUnicodeString (&win32, - (PWCHAR) crealloc (win32.Buffer, - upath.Length + 2), + (PWCHAR) crealloc_abort (win32.Buffer, + upath.Length + 2), upath.Length + 2); RtlCopyUnicodeString (&win32, &upath); } @@ -4531,7 +4531,7 @@ skip_peb_storing: posix_cwd = (const char *) alloca (PATH_MAX); mount_table->conv_to_posix_path (win32.Buffer, (char *) posix_cwd, 0); } - posix = (char *) crealloc (posix, strlen (posix_cwd) + 1); + posix = (char *) crealloc_abort (posix, strlen (posix_cwd) + 1); stpcpy (posix, posix_cwd); } diff --git a/winsup/cygwin/pinfo.cc b/winsup/cygwin/pinfo.cc index 8c4702dfd..b7d8a6dec 100644 --- a/winsup/cygwin/pinfo.cc +++ b/winsup/cygwin/pinfo.cc @@ -604,7 +604,7 @@ _pinfo::commune_request (__uint32_t code, ...) res.s = NULL; else { - res.s = (char *) cmalloc (HEAP_COMMUNE, n); + res.s = (char *) cmalloc_abort (HEAP_COMMUNE, n); char *p; for (p = res.s; n && ReadFile (fromthem, p, n, &nr, NULL); p += nr, n -= nr) continue; @@ -666,7 +666,7 @@ _pinfo::fd (int fd, size_t &n) if (cfd < 0) s = cstrdup (""); else - s = cfd->get_proc_fd_name ((char *) cmalloc (HEAP_COMMUNE, CYG_MAX_PATH)); + s = cfd->get_proc_fd_name ((char *) cmalloc_abort (HEAP_COMMUNE, CYG_MAX_PATH)); n = strlen (s) + 1; } return s; @@ -692,7 +692,7 @@ _pinfo::fds (size_t &n) while ((fd = cfd.next ()) >= 0) n += sizeof (int); cfd.rewind (); - s = (char *) cmalloc (HEAP_COMMUNE, n); + s = (char *) cmalloc_abort (HEAP_COMMUNE, n); int *p = (int *) s; while ((fd = cfd.next ()) >= 0 && (char *) p - s < (int) n) *p++ = fd; @@ -737,7 +737,7 @@ _pinfo::cwd (size_t& n) } else { - s = (char *) cmalloc (HEAP_COMMUNE, CYG_MAX_PATH); + s = (char *) cmalloc_abort (HEAP_COMMUNE, CYG_MAX_PATH); cygheap->cwd.get (s, 1, 1, CYG_MAX_PATH); n = strlen (s) + 1; } @@ -762,7 +762,7 @@ _pinfo::cmdline (size_t& n) for (char **a = __argv; *a; a++) n += strlen (*a) + 1; char *p; - p = s = (char *) cmalloc (HEAP_COMMUNE, n); + p = s = (char *) cmalloc_abort (HEAP_COMMUNE, n); for (char **a = __argv; *a; a++) { strcpy (p, *a); diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc index dcaa0991e..d97b2cf6d 100644 --- a/winsup/cygwin/sigproc.cc +++ b/winsup/cygwin/sigproc.cc @@ -113,7 +113,7 @@ void __stdcall sigalloc () { cygheap->sigs = global_sigs = - (struct sigaction *) ccalloc (HEAP_SIGS, NSIG, sizeof (struct sigaction)); + (struct sigaction *) ccalloc_abort (HEAP_SIGS, NSIG, sizeof (struct sigaction)); global_sigs[SIGSTOP].sa_flags = SA_RESTART | SA_NODEFER; } diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc index 254cc060b..6e30b0530 100644 --- a/winsup/cygwin/spawn.cc +++ b/winsup/cygwin/spawn.cc @@ -333,7 +333,7 @@ spawn_guts (const char * prog_arg, const char *const *argv, else chtype = PROC_EXEC; - moreinfo = (cygheap_exec_info *) ccalloc (HEAP_1_EXEC, 1, sizeof (cygheap_exec_info)); + moreinfo = (cygheap_exec_info *) ccalloc_abort (HEAP_1_EXEC, 1, sizeof (cygheap_exec_info)); moreinfo->old_title = NULL; /* CreateProcess takes one long string that is the command line (sigh). diff --git a/winsup/cygwin/uinfo.cc b/winsup/cygwin/uinfo.cc index af6035c5b..2efffd182 100644 --- a/winsup/cygwin/uinfo.cc +++ b/winsup/cygwin/uinfo.cc @@ -446,7 +446,7 @@ cygheap_user::env_systemroot (const char *name, size_t namelen) int size = GetWindowsDirectory (NULL, 0); if (size > 0) { - psystemroot = (char *) cmalloc (HEAP_STR, ++size); + psystemroot = (char *) cmalloc_abort (HEAP_STR, ++size); size = GetWindowsDirectory (psystemroot, size); if (size <= 0) { diff --git a/winsup/cygwin/winf.h b/winsup/cygwin/winf.h index 8f965e917..079ef3045 100644 --- a/winsup/cygwin/winf.h +++ b/winsup/cygwin/winf.h @@ -30,7 +30,7 @@ class av av (): argv (NULL) {} av (int ac_in, const char * const *av_in) : calloced (0), argc (ac_in), win16_exe (false) { - argv = (char **) cmalloc (HEAP_1_ARGV, (argc + 5) * sizeof (char *)); + argv = (char **) cmalloc_abort (HEAP_1_ARGV, (argc + 5) * sizeof (char *)); memcpy (argv, av_in, (argc + 1) * sizeof (char *)); } void *operator new (size_t, void *p) __attribute__ ((nothrow)) {return p;} |