This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Sun, Nov 03, 2013 at 05:54:11PM +0100, OndÅej BÃlka wrote: > Hi, > > This patches cover more cases than previous patch. As a first part we > define nmalloc macros. > A second part does refactoring by coccinelle, this time we also cover realloc and recognize more cases. A generator is attached. nptl/ChangeLog: * tst-cancel20.c (do_one_test): Use nmalloc instead malloc. * tst-cancel21.c (do_one_test): Likewise. * tst-signal6.c (tf): Likewise. ChangeLog: * argp/argp-help.c (make_hol, hol_append): Use nmalloc instead malloc. * dirent/scandirat.c (SCANDIRAT): Likewise. * elf/dl-load.c (decompose_rpath, _dl_init_paths, _dl_init_paths, _dl_init_paths): Likewise. * elf/dl-open.c (add_to_global, add_to_global): Likewise. * elf/dl-tls.c (_dl_update_slotinfo): Likewise. * grp/initgroups.c (internal_getgrouplist, initgroups): Likewise. * hesiod/nss_hesiod/hesiod-grp.c (_nss_hesiod_initgroups_dyn): Likewise. * hurd/alloc-fd.c (_hurd_alloc_fd): Likewise. * hurd/hurdmsg.c (_S_msg_set_environment): Likewise. * hurd/hurdsig.c (_hurdsig_init): Likewise. * hurd/hurdsock.c (_hurd_socket_server): Likewise. * iconv/gconv_cache.c (__gconv_lookup_cache, __gconv_lookup_cache): Likewise. * libio/tst-mmap2-eofsync.c (): Likewise. * libio/wgenops.c (_IO_wdefault_pbackfail, _IO_wdefault_pbackfail, save_for_wbackup): Likewise. * malloc/malloc.c: Likewise. * malloc/tst-malloc.c (main): Likewise. * misc/err.c (convert_and_print): Likewise. * nis/nis_call.c (get_ckey): Likewise. * nis/nis_findserv.c (__nis_findfastest_with_timeout, __nis_findfastest_with_timeout): Likewise. * nis/nis_getservlist.c (nis_getservlist, nis_getservlist): Likewise. * nis/nis_subr.c (nis_getnames): Likewise. * nis/nis_table.c (__create_ib_request, nis_list): Likewise. * nis/nss_compat/compat-initgroups.c (add_group, getgrent_next_nss): Likewise. * nis/nss_nis/nis-initgroups.c (initgroups_netid, _nss_nis_initgroups_dyn): Likewise. * nis/nss_nisplus/nisplus-initgroups.c (_nss_nisplus_initgroups_dyn): Likewise. * nscd/initgrcache.c (addinitgroupsX): Likewise. * nscd/nscd_getserv_r.c (nscd_getserv_r, nscd_getserv_r): Likewise. * nscd/nscd_initgroups.c (__nscd_getgrouplist): Likewise. * posix/fnmatch.c (fnmatch, fnmatch): Likewise. * posix/regexec.c (build_trtable): Likewise. * posix/regex_internal.h (struct): Likewise. * posix/spawn_faction_init.c (): Likewise. * posix/tst-mmap.c (main): Likewise. * posix/wordexp.c (w_addword): Likewise. * resolv/gai_misc.c (get_elem): Likewise. * stdlib/tst-qsort2.c (compare): Likewise. * stdlib/tst-qsort.c (compare): Likewise. * string/strcoll_l.c (STRCOLL): Likewise. * string/strxfrm_l.c (STRXFRM): Likewise. * sunrpc/auth_unix.c (authunix_create_default): Likewise. * sunrpc/svc.c (xprt_register): Likewise. * sunrpc/svc_run.c (svc_run): Likewise. * sysdeps/gnu/ifaddrs.c (getifaddrs): Likewise. * sysdeps/mach/hurd/i386/init-first.c (init): Likewise. * sysdeps/mach/hurd/if_index.c (if_nameindex): Likewise. * sysdeps/posix/getaddrinfo.c (gaih_inet, gaih_inet, gaiconf_init, gaiconf_init, gaiconf_init): Likewise. * sysdeps/posix/sprofil.c (insert): Likewise. * sysdeps/pthread/aio_misc.c (get_elem): Likewise. * sysdeps/unix/ifreq.c (__ifreq): Likewise. * sysdeps/unix/sysv/linux/if_index.c (if_nameindex_netlink): Likewise. * sysdeps/unix/sysv/linux/ifreq.c (__ifreq): Likewise. * time/alt_digit.c (_nl_init_alt_digit, _nl_get_walt_digit): Likewise. libidn/ChangeLog: * idna.c (idna_to_ascii_4i, idna_to_unicode_4z4z): Use nmalloc instead malloc. * stringprep.c (stringprep): Likewise. --- argp/argp-help.c | 5 +++-- dirent/scandirat.c | 3 ++- elf/dl-load.c | 18 +++++++++--------- elf/dl-open.c | 7 +++---- elf/dl-tls.c | 3 ++- grp/initgroups.c | 5 +++-- hesiod/nss_hesiod/hesiod-grp.c | 3 ++- hurd/alloc-fd.c | 3 ++- hurd/hurdmsg.c | 3 ++- hurd/hurdsig.c | 3 ++- hurd/hurdsock.c | 3 ++- iconv/gconv_cache.c | 6 +++--- libidn/idna.c | 5 +++-- libidn/stringprep.c | 3 ++- libio/tst-mmap2-eofsync.c | 3 ++- libio/wgenops.c | 9 ++++----- malloc/malloc.c | 1 + malloc/tst-malloc.c | 5 +++-- misc/err.c | 3 ++- nis/nis_call.c | 3 ++- nis/nis_findserv.c | 6 +++--- nis/nis_getservlist.c | 7 ++++--- nis/nis_subr.c | 3 ++- nis/nis_table.c | 10 +++++----- nis/nss_compat/compat-initgroups.c | 5 +++-- nis/nss_nis/nis-initgroups.c | 5 +++-- nis/nss_nisplus/nisplus-initgroups.c | 3 ++- nptl/tst-cancel20.c | 3 ++- nptl/tst-cancel21.c | 3 ++- nptl/tst-signal6.c | 3 ++- nscd/initgrcache.c | 3 ++- nscd/nscd_getserv_r.c | 6 +++--- nscd/nscd_initgroups.c | 4 ++-- posix/annexc.c | 5 +++-- posix/fnmatch.c | 5 +++-- posix/regex_internal.h | 4 ++-- posix/regexec.c | 4 ++-- posix/spawn_faction_init.c | 5 +++-- posix/tst-mmap.c | 3 ++- posix/wordexp.c | 3 ++- resolv/gai_misc.c | 4 ++-- stdlib/isomac.c | 5 +++-- stdlib/tst-qsort.c | 3 ++- stdlib/tst-qsort2.c | 3 ++- string/strcoll_l.c | 4 +++- string/strxfrm_l.c | 3 ++- sunrpc/auth_unix.c | 3 ++- sunrpc/svc.c | 3 ++- sunrpc/svc_run.c | 3 ++- sysdeps/gnu/ifaddrs.c | 3 ++- sysdeps/mach/hurd/i386/init-first.c | 3 ++- sysdeps/mach/hurd/if_index.c | 3 ++- sysdeps/posix/getaddrinfo.c | 13 ++++++------- sysdeps/posix/sprofil.c | 3 ++- sysdeps/pthread/aio_misc.c | 4 ++-- sysdeps/unix/ifreq.c | 3 ++- sysdeps/unix/sysv/linux/if_index.c | 3 ++- sysdeps/unix/sysv/linux/ifreq.c | 3 ++- time/alt_digit.c | 5 +++-- 59 files changed, 151 insertions(+), 107 deletions(-) diff --git a/argp/argp-help.c b/argp/argp-help.c index ace71b4..af3e4ee 100644 --- a/argp/argp-help.c +++ b/argp/argp-help.c @@ -40,6 +40,7 @@ char *alloca (); # endif #endif +#include <nmalloc.h> #include <stdbool.h> #include <stddef.h> #include <stdlib.h> @@ -454,7 +455,7 @@ make_hol (const struct argp *argp, struct hol_cluster *cluster) num_short_options++; /* This is an upper bound. */ } - hol->entries = malloc (sizeof (struct hol_entry) * hol->num_entries); + hol->entries = NMALLOC (hol->num_entries, struct hol_entry); hol->short_options = malloc (num_short_options + 1); assert (hol->entries && hol->short_options); @@ -848,7 +849,7 @@ hol_append (struct hol *hol, struct hol *more) struct hol_entry *e; unsigned num_entries = hol->num_entries + more->num_entries; struct hol_entry *entries = - malloc (num_entries * sizeof (struct hol_entry)); + NMALLOC (num_entries, struct hol_entry); unsigned hol_so_len = strlen (hol->short_options); char *short_options = malloc (hol_so_len + strlen (more->short_options) + 1); diff --git a/dirent/scandirat.c b/dirent/scandirat.c index 0f2a440..498acb2 100644 --- a/dirent/scandirat.c +++ b/dirent/scandirat.c @@ -20,6 +20,7 @@ complain about the mismatch when we do the alias below. */ #define scandirat64 __renamed_scandirat64 +#include <nmalloc.h> #include <dirent.h> #undef scandirat64 @@ -105,7 +106,7 @@ SCANDIRAT (dfd, dir, namelist, select, cmp) vsize = 10; else vsize *= 2; - new = (DIRENT_TYPE **) realloc (v, vsize * sizeof (*v)); + new = (DIRENT_TYPE **) nrealloc (v, vsize, sizeof (*v)); if (new == NULL) break; v = new; diff --git a/elf/dl-load.c b/elf/dl-load.c index 6a73f27..922d3b3 100644 --- a/elf/dl-load.c +++ b/elf/dl-load.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <elf.h> #include <errno.h> #include <fcntl.h> @@ -650,8 +651,8 @@ decompose_rpath (struct r_search_path_struct *sps, /* Allocate room for the result. NELEMS + 1 is an upper limit for the number of necessary entries. */ - result = (struct r_search_path_elem **) malloc ((nelems + 1 + 1) - * sizeof (*result)); + result = (struct r_search_path_elem **) nmalloc ((nelems + 1 + 1), + sizeof (*result)); if (result == NULL) { free (copy); @@ -722,8 +723,8 @@ _dl_init_paths (const char *llp) &ncapstr, &max_capstrlen); /* First set up the rest of the default search directory entries. */ - aelem = rtld_search_dirs.dirs = (struct r_search_path_elem **) - malloc ((nsystem_dirs_len + 1) * sizeof (struct r_search_path_elem *)); + aelem = rtld_search_dirs.dirs = NMALLOC ((nsystem_dirs_len + 1), + struct r_search_path_elem *); if (rtld_search_dirs.dirs == NULL) { errstring = N_("cannot create search path array"); @@ -735,9 +736,9 @@ _dl_init_paths (const char *llp) + ncapstr * sizeof (enum r_dir_status)) / sizeof (struct r_search_path_elem)); - rtld_search_dirs.dirs[0] = (struct r_search_path_elem *) - malloc ((sizeof (system_dirs) / sizeof (system_dirs[0])) - * round_size * sizeof (struct r_search_path_elem)); + rtld_search_dirs.dirs[0] = NMALLOC ((sizeof (system_dirs) + / sizeof (system_dirs[0])) * round_size, + struct r_search_path_elem); if (rtld_search_dirs.dirs[0] == NULL) { errstring = N_("cannot create cache for search path"); @@ -855,8 +856,7 @@ _dl_init_paths (const char *llp) ++cp; } - env_path_list.dirs = (struct r_search_path_elem **) - malloc ((nllp + 1) * sizeof (struct r_search_path_elem *)); + env_path_list.dirs = NMALLOC ((nllp + 1), struct r_search_path_elem *); if (env_path_list.dirs == NULL) { errstring = N_("cannot create cache for search path"); diff --git a/elf/dl-open.c b/elf/dl-open.c index 1403c8c..d18921b 100644 --- a/elf/dl-open.c +++ b/elf/dl-open.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <assert.h> #include <dlfcn.h> #include <errno.h> @@ -92,8 +93,7 @@ add_to_global (struct link_map *new) /* This is the first dynamic object given global scope. */ ns->_ns_global_scope_alloc = ns->_ns_main_searchlist->r_nlist + to_add + 8; - new_global = (struct link_map **) - malloc (ns->_ns_global_scope_alloc * sizeof (struct link_map *)); + new_global = NMALLOC (ns->_ns_global_scope_alloc, struct link_map *); if (new_global == NULL) { ns->_ns_global_scope_alloc = 0; @@ -118,8 +118,7 @@ add_to_global (struct link_map *new) = GL(dl_ns)[new->l_ns]._ns_main_searchlist->r_list; size_t new_nalloc = ((ns->_ns_global_scope_alloc + to_add) * 2); - new_global = (struct link_map **) - malloc (new_nalloc * sizeof (struct link_map *)); + new_global = NMALLOC (new_nalloc, struct link_map *); if (new_global == NULL) goto nomem; diff --git a/elf/dl-tls.c b/elf/dl-tls.c index 576d9a1..887ec56 100644 --- a/elf/dl-tls.c +++ b/elf/dl-tls.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <assert.h> #include <errno.h> #include <libintl.h> @@ -631,7 +632,7 @@ _dl_update_slotinfo (unsigned long int req_modid) malloc instead of the real malloc. We can't free it, we have to abandon the old storage. */ - newp = malloc ((2 + newsize) * sizeof (dtv_t)); + newp = NMALLOC ((2 + newsize), dtv_t); if (newp == NULL) oom (); memcpy (newp, &dtv[-1], (2 + oldsize) * sizeof (dtv_t)); diff --git a/grp/initgroups.c b/grp/initgroups.c index 932d8fb..0cef050 100644 --- a/grp/initgroups.c +++ b/grp/initgroups.c @@ -15,6 +15,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <alloca.h> #include <assert.h> #include <errno.h> @@ -158,7 +159,7 @@ getgrouplist (const char *user, gid_t group, gid_t *groups, int *ngroups) { long int size = MAX (1, *ngroups); - gid_t *newgroups = (gid_t *) malloc (size * sizeof (gid_t)); + gid_t *newgroups = NMALLOC (size, gid_t); if (__builtin_expect (newgroups == NULL, 0)) /* No more memory. */ // XXX This is wrong. The user provided memory, we have to use @@ -211,7 +212,7 @@ initgroups (const char *user, gid_t group) /* No fixed limit on groups. Pick a starting buffer size. */ size = 16; - groups = (gid_t *) malloc (size * sizeof (gid_t)); + groups = NMALLOC (size, gid_t); if (__builtin_expect (groups == NULL, 0)) /* No more memory. */ return -1; diff --git a/hesiod/nss_hesiod/hesiod-grp.c b/hesiod/nss_hesiod/hesiod-grp.c index b11952f..1276f33 100644 --- a/hesiod/nss_hesiod/hesiod-grp.c +++ b/hesiod/nss_hesiod/hesiod-grp.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <ctype.h> #include <errno.h> #include <grp.h> @@ -242,7 +243,7 @@ _nss_hesiod_initgroups_dyn (const char *user, gid_t group, long int *start, else newsize = MIN (limit, 2 * *size); - newgroups = realloc (groups, newsize * sizeof (*groups)); + newgroups = nrealloc (groups, newsize, sizeof (*groups)); if (newgroups == NULL) goto done; *groupsp = groups = newgroups; diff --git a/hurd/alloc-fd.c b/hurd/alloc-fd.c index ec7b50a..bad042e 100644 --- a/hurd/alloc-fd.c +++ b/hurd/alloc-fd.c @@ -15,6 +15,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <hurd.h> #include <hurd/fd.h> #include <hurd/resource.h> @@ -106,7 +107,7 @@ _hurd_alloc_fd (int *fd, int first_fd) /* If we fail to allocate that, decrement the desired size until we succeed in allocating it. */ do - new = realloc (_hurd_dtable, size * sizeof (*_hurd_dtable)); + new = nrealloc (_hurd_dtable, size, sizeof (*_hurd_dtable)); while (new == NULL && size-- > first_fd); if (new != NULL) diff --git a/hurd/hurdmsg.c b/hurd/hurdmsg.c index 6e350ee..e17177c 100644 --- a/hurd/hurdmsg.c +++ b/hurd/hurdmsg.c @@ -15,6 +15,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <hurd.h> #include <hurd/msg_server.h> #include <hurd/fd.h> @@ -392,7 +393,7 @@ _S_msg_set_environment (mach_port_t msgport, mach_port_t auth, AUTHCHECK; envc = __argz_count (data, datalen); - envp = malloc ((envc + 1) * sizeof (char *)); + envp = NMALLOC ((envc + 1), char *); if (envp == NULL) return errno; __argz_extract (data, datalen, envp); diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c index 558aa07..b3a3e61 100644 --- a/hurd/hurdsig.c +++ b/hurd/hurdsig.c @@ -15,6 +15,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -1269,7 +1270,7 @@ _hurdsig_init (const int *intarray, size_t intarraysize) __hurd_sigthread_stack_end = __hurd_sigthread_stack_base + stacksize; __hurd_sigthread_variables = - malloc (__hurd_threadvar_max * sizeof (unsigned long int)); + NMALLOC (__hurd_threadvar_max, unsigned long int); if (__hurd_sigthread_variables == NULL) __libc_fatal ("hurd: Can't allocate threadvars for signal thread\n"); memset (__hurd_sigthread_variables, 0, diff --git a/hurd/hurdsock.c b/hurd/hurdsock.c index 7464f99..81b28a8 100644 --- a/hurd/hurdsock.c +++ b/hurd/hurdsock.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <hurd.h> #include <sys/socket.h> #include <stdlib.h> @@ -58,7 +59,7 @@ _hurd_socket_server (int domain, int dead) if (domain > max_domain) { error_t save = errno; - file_t *new = realloc (servers, (domain + 1) * sizeof (file_t)); + file_t *new = NREALLOC (servers, (domain + 1), file_t); if (new != NULL) { do diff --git a/iconv/gconv_cache.c b/iconv/gconv_cache.c index ccd2d6e..75cc0f1 100644 --- a/iconv/gconv_cache.c +++ b/iconv/gconv_cache.c @@ -17,6 +17,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <dlfcn.h> #include <errno.h> #include <fcntl.h> @@ -314,8 +315,7 @@ __gconv_lookup_cache (const char *toset, const char *fromset, *nsteps = extra->module_cnt; *handle = result = - (struct __gconv_step *) malloc (extra->module_cnt - * sizeof (struct __gconv_step)); + NMALLOC (extra->module_cnt, struct __gconv_step); if (result == NULL) return __GCONV_NOMEM; @@ -369,7 +369,7 @@ __gconv_lookup_cache (const char *toset, const char *fromset, return __GCONV_NOCONV; /* We will use up to two modules. Always allocate room for two. */ - result = (struct __gconv_step *) malloc (2 * sizeof (struct __gconv_step)); + result = NMALLOC (2, struct __gconv_step); if (result == NULL) return __GCONV_NOMEM; diff --git a/libidn/idna.c b/libidn/idna.c index 7a15a25..7612d62 100644 --- a/libidn/idna.c +++ b/libidn/idna.c @@ -21,6 +21,7 @@ # include "config.h" #endif +#include <nmalloc.h> #include <stdlib.h> #include <string.h> #include <stringprep.h> @@ -88,7 +89,7 @@ idna_to_ascii_4i (const uint32_t * in, size_t inlen, char *out, int flags) inasciirange = 0; if (inasciirange) { - src = malloc (sizeof (in[0]) * (inlen + 1)); + src = nmalloc (sizeof (in[0]), (inlen + 1)); if (src == NULL) return IDNA_MALLOC_ERROR; @@ -624,7 +625,7 @@ idna_to_unicode_4z4z (const uint32_t * input, uint32_t ** output, int flags) ; buflen = end - start; - buf = malloc (sizeof (buf[0]) * (buflen + 1)); + buf = nmalloc (sizeof (buf[0]), (buflen + 1)); if (!buf) return IDNA_MALLOC_ERROR; diff --git a/libidn/stringprep.c b/libidn/stringprep.c index 72a502e..1deffa1 100644 --- a/libidn/stringprep.c +++ b/libidn/stringprep.c @@ -21,6 +21,7 @@ # include "config.h" #endif +#include <nmalloc.h> #include <stdlib.h> #include <string.h> #include <stdint.h> @@ -368,7 +369,7 @@ stringprep (char *in, free (ucs4); ucs4 = stringprep_utf8_to_ucs4 (in, -1, &ucs4len); maxucs4len = ucs4len + adducs4len; - uint32_t *newp = realloc (ucs4, maxucs4len * sizeof (uint32_t)); + uint32_t *newp = NREALLOC (ucs4, maxucs4len, uint32_t); if (!newp) { free (ucs4); diff --git a/libio/tst-mmap2-eofsync.c b/libio/tst-mmap2-eofsync.c index f369965..4c26658 100644 --- a/libio/tst-mmap2-eofsync.c +++ b/libio/tst-mmap2-eofsync.c @@ -1,5 +1,6 @@ /* Test program for synchronization of stdio state with file after EOF. */ +#include <nmalloc.h> #include <stdio.h> #include <error.h> #include <errno.h> @@ -20,7 +21,7 @@ static char *pages; static void do_prepare (void) { - pages = malloc (getpagesize () * 2); + pages = nmalloc (getpagesize (), 2); memset (pages, 'a', getpagesize ()); memset (pages + getpagesize (), 'b', getpagesize ()); diff --git a/libio/wgenops.c b/libio/wgenops.c index b39b691..32fdf0a 100644 --- a/libio/wgenops.c +++ b/libio/wgenops.c @@ -28,6 +28,7 @@ /* Generic or default I/O operations. */ +#include <nmalloc.h> #include "libioP.h" #include <stdlib.h> #include <string.h> @@ -149,8 +150,7 @@ _IO_wdefault_pbackfail (fp, c) /* No backup buffer: allocate one. */ /* Use nshort buffer, if unused? (probably not) FIXME */ int backup_size = 128; - wchar_t *bbuf = (wchar_t *) malloc (backup_size - * sizeof (wchar_t)); + wchar_t *bbuf = NMALLOC (backup_size, wchar_t); if (bbuf == NULL) return WEOF; fp->_wide_data->_IO_save_base = bbuf; @@ -169,7 +169,7 @@ _IO_wdefault_pbackfail (fp, c) - fp->_wide_data->_IO_read_base); wchar_t *new_buf; new_size = 2 * old_size; - new_buf = (wchar_t *) malloc (new_size * sizeof (wchar_t)); + new_buf = NMALLOC (new_size, wchar_t); if (new_buf == NULL) return WEOF; __wmemcpy (new_buf + (new_size - old_size), @@ -515,8 +515,7 @@ save_for_wbackup (fp, end_p) { wchar_t *new_buffer; avail = 100; - new_buffer = (wchar_t *) malloc ((avail + needed_size) - * sizeof (wchar_t)); + new_buffer = NMALLOC ((avail + needed_size), wchar_t); if (new_buffer == NULL) return EOF; /* FIXME */ if (least_mark < 0) diff --git a/malloc/malloc.c b/malloc/malloc.c index 897c43a..1452d84 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -212,6 +212,7 @@ #define void void #endif /*void*/ +#include <nmalloc.h> #include <stddef.h> /* for size_t */ #include <stdlib.h> /* for getenv(), abort() */ #include <unistd.h> /* for __libc_enable_secure */ diff --git a/malloc/tst-malloc.c b/malloc/tst-malloc.c index 518c8e5..482d3db 100644 --- a/malloc/tst-malloc.c +++ b/malloc/tst-malloc.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <errno.h> #include <malloc.h> #include <stdio.h> @@ -63,11 +64,11 @@ main (void) if (p != NULL) merror ("realloc (p, 0) failed."); - p = malloc (513 * 1024); + p = nmalloc (513, 1024); if (p == NULL) merror ("malloc (513K) failed."); - q = malloc (-512 * 1024); + q = nmalloc (-512, 1024); if (q != NULL) merror ("malloc (-512K) succeeded."); diff --git a/misc/err.c b/misc/err.c index e082a8b..ad6d6db 100644 --- a/misc/err.c +++ b/misc/err.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <stdarg.h> #include <err.h> #include <stdlib.h> @@ -61,7 +62,7 @@ convert_and_print (const char *format, __gnuc_va_list ap) if (wformat != NULL && len / 2 < ALLOCA_LIMIT) wformat = NULL; - wformat = (wchar_t *) realloc (wformat, len * sizeof (wchar_t)); + wformat = NREALLOC (wformat, len, wchar_t); if (wformat == NULL) { diff --git a/nis/nis_call.c b/nis/nis_call.c index b97f8a1..d311ce4 100644 --- a/nis/nis_call.c +++ b/nis/nis_call.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <errno.h> #include <fcntl.h> #include <string.h> @@ -160,7 +161,7 @@ get_ckey (des_block *ckey, struct sockaddr_in *addr, unsigned int protocol) { size_t size = ckey_cache_allocated ? ckey_cache_allocated * 2 : 16; struct ckey_cache_entry *new_cache - = realloc (ckey_cache, size * sizeof (*ckey_cache)); + = nrealloc (ckey_cache, size, sizeof (*ckey_cache)); if (new_cache != NULL) { ckey_cache = new_cache; diff --git a/nis/nis_findserv.c b/nis/nis_findserv.c index c5269c2..deb1788 100644 --- a/nis/nis_findserv.c +++ b/nis/nis_findserv.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <string.h> #include <time.h> #include <unistd.h> @@ -86,7 +87,7 @@ __nis_findfastest_with_timeout (dir_binding *bind, pings_max = bind->server_len * 2; /* Reserve a little bit more memory for multihomed hosts */ pings_count = 0; - pings = malloc (sizeof (struct findserv_req) * pings_max); + pings = NMALLOC (pings_max, struct findserv_req); xid_seed = (u_int32_t) (time (NULL) ^ getpid ()); if (__builtin_expect (pings == NULL, 0)) @@ -116,8 +117,7 @@ __nis_findfastest_with_timeout (dir_binding *bind, struct findserv_req *new_pings; pings_max += 10; - new_pings = realloc (pings, sizeof (struct findserv_req) * - pings_max); + new_pings = NREALLOC (pings, pings_max, struct findserv_req); if (__builtin_expect (new_pings == NULL, 0)) { free (pings); diff --git a/nis/nis_getservlist.c b/nis/nis_getservlist.c index 54840ab..8b16bb4 100644 --- a/nis/nis_getservlist.c +++ b/nis/nis_getservlist.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <string.h> #include <rpcsvc/nis.h> @@ -36,8 +37,8 @@ nis_getservlist (const_nis_name dir) nis_server *server; serv = - malloc (sizeof (nis_server *) * - (NIS_RES_OBJECT (res)->DI_data.do_servers.do_servers_len + 1)); + NMALLOC ((NIS_RES_OBJECT (res)->DI_data.do_servers.do_servers_len + 1), + nis_server *); if (__builtin_expect (serv == NULL, 0)) { nis_freeresult (res); @@ -94,7 +95,7 @@ nis_getservlist (const_nis_name dir) unsigned long int j; serv[i]->ep.ep_val = - malloc (server->ep.ep_len * sizeof (endpoint)); + nmalloc (server->ep.ep_len, sizeof (endpoint)); if (__builtin_expect (serv[i]->ep.ep_val == NULL, 0)) { ++i; diff --git a/nis/nis_subr.c b/nis/nis_subr.c index a03600d..13060ea 100644 --- a/nis/nis_subr.c +++ b/nis/nis_subr.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <errno.h> #include <string.h> #include <rpcsvc/nis.h> @@ -117,7 +118,7 @@ nis_getnames (const_nis_name name) const char *cp2; int count = 2; - nis_name *getnames = malloc ((count + 1) * sizeof (char *)); + nis_name *getnames = NMALLOC ((count + 1), char *); if (__builtin_expect (getnames == NULL, 0)) return NULL; diff --git a/nis/nis_table.c b/nis/nis_table.c index 0ca40db..bd37fb0 100644 --- a/nis/nis_table.c +++ b/nis/nis_table.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <assert.h> #include <string.h> #include <rpcsvc/nis.h> @@ -101,7 +102,7 @@ __create_ib_request (const_nis_name name, unsigned int flags) if (search_len + 1 >= size) { size += 1; - nis_attr *newp = realloc (search_val, size * sizeof (nis_attr)); + nis_attr *newp = NREALLOC (search_val, size, nis_attr); if (newp == NULL) goto free_null; search_val = newp; @@ -406,10 +407,9 @@ nis_list (const_nis_name name, unsigned int flags, else { nis_object *objects_val - = realloc (NIS_RES_OBJECT (allres), - (NIS_RES_NUMOBJ (allres) - + NIS_RES_NUMOBJ (res)) - * sizeof (nis_object)); + = NREALLOC (NIS_RES_OBJECT (allres), + (NIS_RES_NUMOBJ (allres) + NIS_RES_NUMOBJ (res)), + nis_object); if (objects_val == NULL) { NIS_RES_STATUS (res) = NIS_NOMEMORY; diff --git a/nis/nss_compat/compat-initgroups.c b/nis/nss_compat/compat-initgroups.c index cf924c4..498bfe4 100644 --- a/nis/nss_compat/compat-initgroups.c +++ b/nis/nss_compat/compat-initgroups.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <alloca.h> #include <ctype.h> #include <errno.h> @@ -229,7 +230,7 @@ add_group (long int *start, long int *size, gid_t **groupsp, long int limit, else newsize = MIN (limit, 2 * *size); - newgroups = realloc (groups, newsize * sizeof (*groups)); + newgroups = nrealloc (groups, newsize, sizeof (*groups)); if (newgroups == NULL) return; *groupsp = groups = newgroups; @@ -281,7 +282,7 @@ getgrent_next_nss (ent_t *ent, char *buffer, size_t buflen, const char *user, { long int mystart = 0; long int mysize = limit <= 0 ? *size : limit; - gid_t *mygroups = malloc (mysize * sizeof (gid_t)); + gid_t *mygroups = NMALLOC (mysize, gid_t); if (mygroups == NULL) return NSS_STATUS_TRYAGAIN; diff --git a/nis/nss_nis/nis-initgroups.c b/nis/nss_nis/nis-initgroups.c index 87ceca2..df92101 100644 --- a/nis/nss_nis/nis-initgroups.c +++ b/nis/nss_nis/nis-initgroups.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <alloca.h> #include <ctype.h> #include <errno.h> @@ -207,7 +208,7 @@ initgroups_netid (uid_t uid, gid_t group, long int *start, long int *size, else newsize = MIN (limit, 2 * *size); - gid_t *newgroups = realloc (groups, newsize * sizeof (*groups)); + gid_t *newgroups = nrealloc (groups, newsize, sizeof (*groups)); if (newgroups == NULL) goto errout; *groupsp = groups = newgroups; @@ -295,7 +296,7 @@ _nss_nis_initgroups_dyn (const char *user, gid_t group, long int *start, else newsize = MIN (limit, 2 * *size); - newgroups = realloc (groups, newsize * sizeof (*groups)); + newgroups = nrealloc (groups, newsize, sizeof (*groups)); if (newgroups == NULL) goto done; *groupsp = groups = newgroups; diff --git a/nis/nss_nisplus/nisplus-initgroups.c b/nis/nss_nisplus/nisplus-initgroups.c index b54c53d..e7f9f77 100644 --- a/nis/nss_nisplus/nisplus-initgroups.c +++ b/nis/nss_nisplus/nisplus-initgroups.c @@ -15,6 +15,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <atomic.h> #include <nss.h> #include <grp.h> @@ -132,7 +133,7 @@ _nss_nisplus_initgroups_dyn (const char *user, gid_t group, long int *start, else newsize = MIN (limit, 2 * *size); - gid_t *newgroups = realloc (groups, newsize * sizeof (*groups)); + gid_t *newgroups = nrealloc (groups, newsize, sizeof (*groups)); if (newgroups == NULL) goto errout; *groupsp = groups = newgroups; diff --git a/nptl/tst-cancel20.c b/nptl/tst-cancel20.c index e34bd11..a0a7aa5 100644 --- a/nptl/tst-cancel20.c +++ b/nptl/tst-cancel20.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <errno.h> #include <pthread.h> #include <signal.h> @@ -178,7 +179,7 @@ static int do_test (void) { stack_t ss; - ss.ss_sp = malloc (2 * SIGSTKSZ); + ss.ss_sp = nmalloc (2, SIGSTKSZ); if (ss.ss_sp == NULL) { puts ("failed to allocate alternate stack"); diff --git a/nptl/tst-cancel21.c b/nptl/tst-cancel21.c index 057a446..4df74c8 100644 --- a/nptl/tst-cancel21.c +++ b/nptl/tst-cancel21.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <errno.h> #include <pthread.h> #include <signal.h> @@ -214,7 +215,7 @@ static int do_test (void) { stack_t ss; - ss.ss_sp = malloc (2 * SIGSTKSZ); + ss.ss_sp = nmalloc (2, SIGSTKSZ); if (ss.ss_sp == NULL) { puts ("failed to allocate alternate stack"); diff --git a/nptl/tst-signal6.c b/nptl/tst-signal6.c index 2830bdf..5cea2b3 100644 --- a/nptl/tst-signal6.c +++ b/nptl/tst-signal6.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <pthread.h> #include <signal.h> #include <stdint.h> @@ -86,7 +87,7 @@ tf (void *arg) exit (1); } - void *p = malloc (2 * MINSIGSTKSZ); + void *p = nmalloc (2, MINSIGSTKSZ); if (p == NULL) { puts ("tf: malloc failed"); diff --git a/nscd/initgrcache.c b/nscd/initgrcache.c index 4580884..78bcf93 100644 --- a/nscd/initgrcache.c +++ b/nscd/initgrcache.c @@ -16,6 +16,7 @@ You should have received a copy of the GNU General Public License along with this program; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <assert.h> #include <errno.h> #include <grp.h> @@ -111,7 +112,7 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req, /* This is temporary memory, we need not (and must not) call mempool_alloc. */ // XXX This really should use alloca. need to change the backends. - gid_t *groups = (gid_t *) malloc (size * sizeof (gid_t)); + gid_t *groups = NMALLOC (size, gid_t); if (__builtin_expect (groups == NULL, 0)) /* No more memory. */ goto out; diff --git a/nscd/nscd_getserv_r.c b/nscd/nscd_getserv_r.c index c9c890c..273ae19 100644 --- a/nscd/nscd_getserv_r.c +++ b/nscd/nscd_getserv_r.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <assert.h> #include <errno.h> #include <string.h> @@ -160,7 +161,7 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto, alloca_used); else { - tmp = malloc (serv_resp.s_aliases_cnt * sizeof (uint32_t)); + tmp = NMALLOC (serv_resp.s_aliases_cnt, uint32_t); if (tmp == NULL) { retval = ENOMEM; @@ -257,8 +258,7 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto, alloca_used); else { - aliases_len = malloc (serv_resp.s_aliases_cnt - * sizeof (uint32_t)); + aliases_len = NMALLOC (serv_resp.s_aliases_cnt, uint32_t); if (aliases_len == NULL) { retval = ENOMEM; diff --git a/nscd/nscd_initgroups.c b/nscd/nscd_initgroups.c index 19e3d79..c8e3872 100644 --- a/nscd/nscd_initgroups.c +++ b/nscd/nscd_initgroups.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <assert.h> #include <errno.h> #include <grp.h> @@ -103,8 +104,7 @@ __nscd_getgrouplist (const char *user, gid_t group, long int *size, though we might not end up adding it. */ if (*size < initgr_resp.ngrps + 1) { - gid_t *newp = realloc (*groupsp, - (initgr_resp.ngrps + 1) * sizeof (gid_t)); + gid_t *newp = NREALLOC (*groupsp, (initgr_resp.ngrps + 1), gid_t); if (newp == NULL) /* We cannot increase the buffer size. */ goto out_close; diff --git a/posix/annexc.c b/posix/annexc.c index 28770dc..64185c0 100644 --- a/posix/annexc.c +++ b/posix/annexc.c @@ -15,6 +15,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <ctype.h> #include <fnmatch.h> #include <stdio.h> @@ -755,7 +756,7 @@ get_null_defines (void) if (result_len == result_max) { result_max += 10; - result = realloc (result, result_max * sizeof (char **)); + result = NREALLOC (result, result_max, char **); if (result == NULL) { puts ("No more memory."); @@ -775,7 +776,7 @@ get_null_defines (void) if (result_len == result_max) { result_max += 1; - result = realloc (result, result_max * sizeof (char **)); + result = NREALLOC (result, result_max, char **); if (result == NULL) { puts ("No more memory."); diff --git a/posix/fnmatch.c b/posix/fnmatch.c index 0f26a2e..b611ded 100644 --- a/posix/fnmatch.c +++ b/posix/fnmatch.c @@ -24,6 +24,7 @@ # define _GNU_SOURCE 1 #endif +#include <nmalloc.h> #include <assert.h> #include <errno.h> #include <fnmatch.h> @@ -379,7 +380,7 @@ fnmatch (pattern, string, flags) return -2; } wpattern_malloc = wpattern - = (wchar_t *) malloc ((n + 1) * sizeof (wchar_t)); + = NMALLOC ((n + 1), wchar_t); assert (mbsinit (&ps)); if (wpattern == NULL) return -2; @@ -430,7 +431,7 @@ fnmatch (pattern, string, flags) } wstring_malloc = wstring - = (wchar_t *) malloc ((n + 1) * sizeof (wchar_t)); + = NMALLOC ((n + 1), wchar_t); if (wstring == NULL) { free (wpattern_malloc); diff --git a/posix/regex_internal.h b/posix/regex_internal.h index 3c94fbe..9f87eaa 100644 --- a/posix/regex_internal.h +++ b/posix/regex_internal.h @@ -429,8 +429,8 @@ static unsigned int re_string_context_at (const re_string_t *input, int idx, # endif #endif -#define re_malloc(t,n) ((t *) malloc ((n) * sizeof (t))) -#define re_realloc(p,t,n) ((t *) realloc (p, (n) * sizeof (t))) +#define re_malloc(t,n) NMALLOC (n, t) +#define re_realloc(p,t,n) NREALLOC (p, t, n) #define re_free(p) free (p) struct bin_tree_t diff --git a/posix/regexec.c b/posix/regexec.c index f85c5e8..ee2b660 100644 --- a/posix/regexec.c +++ b/posix/regexec.c @@ -17,6 +17,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <stdint.h> static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags, @@ -3400,8 +3401,7 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) alloca (ndests * 3 * sizeof (re_dfastate_t *)); else { - dest_states = (re_dfastate_t **) - malloc (ndests * 3 * sizeof (re_dfastate_t *)); + dest_states = NMALLOC (ndests, 3 * re_dfastate_t *); if (BE (dest_states == NULL, 0)) { out_free: diff --git a/posix/spawn_faction_init.c b/posix/spawn_faction_init.c index ced29a8..f1d1ad9 100644 --- a/posix/spawn_faction_init.c +++ b/posix/spawn_faction_init.c @@ -15,6 +15,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <errno.h> #include <spawn.h> #include <stdlib.h> @@ -29,8 +30,8 @@ int __posix_spawn_file_actions_realloc (posix_spawn_file_actions_t *file_actions) { int newalloc = file_actions->__allocated + 8; - void *newmem = realloc (file_actions->__actions, - newalloc * sizeof (struct __spawn_action)); + void *newmem = NREALLOC (file_actions->__actions, newalloc, + struct __spawn_action); if (newmem == NULL) /* Not enough memory. */ diff --git a/posix/tst-mmap.c b/posix/tst-mmap.c index c03acf5..1523756 100644 --- a/posix/tst-mmap.c +++ b/posix/tst-mmap.c @@ -1,3 +1,4 @@ +#include <nmalloc.h> #include <assert.h> #include <errno.h> #include <stdio.h> @@ -93,7 +94,7 @@ main (void) } /* Get a valid address. */ - mem = malloc (2 * ps); + mem = nmalloc (2, ps); if (mem != NULL) { /* Now we map at an address which is not mod pagesize. */ diff --git a/posix/wordexp.c b/posix/wordexp.c index 96ce8a4..1676921 100644 --- a/posix/wordexp.c +++ b/posix/wordexp.c @@ -17,6 +17,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <alloca.h> #include <ctype.h> #include <errno.h> @@ -179,7 +180,7 @@ w_addword (wordexp_t *pwordexp, char *word) } num_p = 2 + pwordexp->we_wordc + pwordexp->we_offs; - new_wordv = realloc (pwordexp->we_wordv, sizeof (char *) * num_p); + new_wordv = NREALLOC (pwordexp->we_wordv, num_p, char *); if (new_wordv != NULL) { pwordexp->we_wordv = new_wordv; diff --git a/resolv/gai_misc.c b/resolv/gai_misc.c index 6b73aac..a85ca20 100644 --- a/resolv/gai_misc.c +++ b/resolv/gai_misc.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <assert.h> #include <errno.h> #include <pthread.h> @@ -116,8 +117,7 @@ get_elem (void) size_t new_max_size = pool_max_size + ROWS_STEP; struct requestlist **new_tab; - new_tab = (struct requestlist **) - realloc (pool, new_max_size * sizeof (struct requestlist *)); + new_tab = NREALLOC (pool, new_max_size, struct requestlist *); if (new_tab == NULL) return NULL; diff --git a/stdlib/isomac.c b/stdlib/isomac.c index 621b515..92120a4 100644 --- a/stdlib/isomac.c +++ b/stdlib/isomac.c @@ -70,6 +70,7 @@ # define _GNU_SOURCE 1 #endif +#include <nmalloc.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -293,7 +294,7 @@ get_null_defines (void) if (result_len == result_max) { result_max += 10; - result = realloc (result, result_max * sizeof (char **)); + result = NREALLOC (result, result_max, char **); if (result == NULL) { puts ("No more memory."); @@ -319,7 +320,7 @@ get_null_defines (void) if (result_len == result_max) { result_max += 1; - result = realloc (result, result_max * sizeof (char **)); + result = NREALLOC (result, result_max, char **); if (result == NULL) { puts ("No more memory."); diff --git a/stdlib/tst-qsort.c b/stdlib/tst-qsort.c index 2b26e74..22f04af 100644 --- a/stdlib/tst-qsort.c +++ b/stdlib/tst-qsort.c @@ -1,4 +1,5 @@ /* Test case by Paul Eggert <eggert@twinsun.com> */ +#include <nmalloc.h> #include <stdio.h> #include <stdlib.h> #include <tst-stack-align.h> @@ -32,7 +33,7 @@ main (int argc, char **argv) { size_t i; size_t array_members = argv[1] ? atoi (argv[1]) : 50; - array = (struct big *) malloc (array_members * sizeof *array); + array = (struct big *) nmalloc (array_members, sizeof *array); if (array == NULL) { puts ("no memory"); diff --git a/stdlib/tst-qsort2.c b/stdlib/tst-qsort2.c index 75d4a17..fe0d228 100644 --- a/stdlib/tst-qsort2.c +++ b/stdlib/tst-qsort2.c @@ -1,3 +1,4 @@ +#include <nmalloc.h> #include <stdio.h> #include <stdlib.h> @@ -28,7 +29,7 @@ compare (const void *a1, const void *b1) int test (size_t nmemb, size_t size) { - array = malloc (nmemb * size); + array = nmalloc (nmemb, size); if (array == NULL) { printf ("%zd x %zd: no memory", nmemb, size); diff --git a/string/strcoll_l.c b/string/strcoll_l.c index 4ee101a..7b2a87d 100644 --- a/string/strcoll_l.c +++ b/string/strcoll_l.c @@ -17,6 +17,7 @@ <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <assert.h> #include <langinfo.h> #include <locale.h> @@ -534,7 +535,8 @@ STRCOLL (const STRING_TYPE *s1, const STRING_TYPE *s2, __locale_t l) } else if (! __libc_use_alloca ((s1len + s2len) * (sizeof (int32_t) + 1))) { - seq1.idxarr = (int32_t *) malloc ((s1len + s2len) * (sizeof (int32_t) + 1)); + seq1.idxarr = (int32_t *) nmalloc ((s1len + s2len), + (sizeof (int32_t) + 1)); /* If we failed to allocate memory, we leave everything as NULL so that we use the nocache version of traversal and comparison functions. */ diff --git a/string/strxfrm_l.c b/string/strxfrm_l.c index 3812ed6..7b84984 100644 --- a/string/strxfrm_l.c +++ b/string/strxfrm_l.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <assert.h> #include <langinfo.h> #include <locale.h> @@ -151,7 +152,7 @@ STRXFRM (STRING_TYPE *dest, const STRING_TYPE *src, size_t n, __locale_t l) very conservative here. */ if (! __libc_use_alloca ((srclen + 1) * (sizeof (int32_t) + 1))) { - idxarr = (int32_t *) malloc ((srclen + 1) * (sizeof (int32_t) + 1)); + idxarr = (int32_t *) nmalloc ((srclen + 1), (sizeof (int32_t) + 1)); rulearr = (unsigned char *) &idxarr[srclen]; if (idxarr == NULL) diff --git a/sunrpc/auth_unix.c b/sunrpc/auth_unix.c index 68b42d7..c6a5254 100644 --- a/sunrpc/auth_unix.c +++ b/sunrpc/auth_unix.c @@ -37,6 +37,7 @@ * for the credentials. */ +#include <nmalloc.h> #include <errno.h> #include <limits.h> #include <stdbool.h> @@ -183,7 +184,7 @@ authunix_create_default (void) gids = (gid_t *) alloca (max_nr_groups * sizeof (gid_t)); else { - gids = (gid_t *) malloc (max_nr_groups * sizeof (gid_t)); + gids = NMALLOC (max_nr_groups, gid_t); if (gids == NULL) return NULL; } diff --git a/sunrpc/svc.c b/sunrpc/svc.c index 53e5d9f..be33077 100644 --- a/sunrpc/svc.c +++ b/sunrpc/svc.c @@ -52,6 +52,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include <nmalloc.h> #include <errno.h> #include <unistd.h> #include <rpc/rpc.h> @@ -97,7 +98,7 @@ xprt_register (SVCXPRT *xprt) if (xports == NULL) { - xports = (SVCXPRT **) malloc (_rpc_dtablesize () * sizeof (SVCXPRT *)); + xports = NMALLOC (_rpc_dtablesize (), SVCXPRT *); if (xports == NULL) /* DonÂt add handle */ return; } diff --git a/sunrpc/svc_run.c b/sunrpc/svc_run.c index 90dfc94..71243c5 100644 --- a/sunrpc/svc_run.c +++ b/sunrpc/svc_run.c @@ -31,6 +31,7 @@ * Wait for input, call server program. */ +#include <nmalloc.h> #include <errno.h> #include <unistd.h> #include <libintl.h> @@ -64,7 +65,7 @@ svc_run (void) if (last_max_pollfd != max_pollfd) { struct pollfd *new_pollfd - = realloc (my_pollfd, sizeof (struct pollfd) * max_pollfd); + = NREALLOC (my_pollfd, max_pollfd, struct pollfd); if (new_pollfd == NULL) { diff --git a/sysdeps/gnu/ifaddrs.c b/sysdeps/gnu/ifaddrs.c index 3626c30..e31493e 100644 --- a/sysdeps/gnu/ifaddrs.c +++ b/sysdeps/gnu/ifaddrs.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <ifaddrs.h> #include <net/if.h> #include <sys/socket.h> @@ -66,7 +67,7 @@ getifaddrs (struct ifaddrs **ifap) struct ifreq *ifr; int i; - storage = malloc (nifs * sizeof storage[0]); + storage = nmalloc (nifs, sizeof storage[0]); if (storage == NULL) { __close (fd); diff --git a/sysdeps/mach/hurd/i386/init-first.c b/sysdeps/mach/hurd/i386/init-first.c index 8fb613b..a480bee 100644 --- a/sysdeps/mach/hurd/i386/init-first.c +++ b/sysdeps/mach/hurd/i386/init-first.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <assert.h> #include <ctype.h> #include <hurd.h> @@ -268,7 +269,7 @@ init (int *data) void call_init1 (void); - array = malloc (__hurd_threadvar_max * sizeof (unsigned long int)); + array = NMALLOC (__hurd_threadvar_max, unsigned long int); if (array == NULL) __libc_fatal ("Can't allocate single-threaded thread variables."); diff --git a/sysdeps/mach/hurd/if_index.c b/sysdeps/mach/hurd/if_index.c index 713f731..3cebde1 100644 --- a/sysdeps/mach/hurd/if_index.c +++ b/sysdeps/mach/hurd/if_index.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <error.h> #include <net/if.h> #include <string.h> @@ -106,7 +107,7 @@ if_nameindex (void) nifs = len / sizeof (struct ifreq); } - idx = malloc ((nifs + 1) * sizeof (struct if_nameindex)); + idx = NMALLOC ((nifs + 1), struct if_nameindex); if (idx == NULL) { err = ENOBUFS; diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c index 8ff74b4..f0594ca 100644 --- a/sysdeps/posix/getaddrinfo.c +++ b/sysdeps/posix/getaddrinfo.c @@ -35,6 +35,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /* This software is Copyright 1996 by Craig Metz, All Rights Reserved. */ +#include <nmalloc.h> #include <assert.h> #include <ctype.h> #include <errno.h> @@ -640,8 +641,7 @@ gaih_inet (const char *name, const struct gaih_service *service, alloca_used); else { - addrmem = malloc (i - * sizeof (struct gaih_addrtuple)); + addrmem = NMALLOC (i, struct gaih_addrtuple); if (addrmem == NULL) { result = -EAI_MEMORY; @@ -712,8 +712,7 @@ gaih_inet (const char *name, const struct gaih_service *service, alloca_used); else { - addrmem = malloc (air->naddrs - * sizeof (struct gaih_addrtuple)); + addrmem = NMALLOC (air->naddrs, struct gaih_addrtuple); if (addrmem == NULL) { result = -EAI_MEMORY; @@ -2171,7 +2170,7 @@ gaiconf_init (void) { if (!labellist_nullbits) ++nlabellist; - new_labels = malloc (nlabellist * sizeof (*new_labels)); + new_labels = nmalloc (nlabellist, sizeof (*new_labels)); if (new_labels == NULL) goto no_file; @@ -2204,7 +2203,7 @@ gaiconf_init (void) { if (!precedencelist_nullbits) ++nprecedencelist; - new_precedence = malloc (nprecedencelist * sizeof (*new_precedence)); + new_precedence = nmalloc (nprecedencelist, sizeof (*new_precedence)); if (new_precedence == NULL) { if (new_labels != default_labels) @@ -2243,7 +2242,7 @@ gaiconf_init (void) { if (!scopelist_nullbits) ++nscopelist; - new_scopes = malloc (nscopelist * sizeof (*new_scopes)); + new_scopes = nmalloc (nscopelist, sizeof (*new_scopes)); if (new_scopes == NULL) { if (new_labels != default_labels) diff --git a/sysdeps/posix/sprofil.c b/sysdeps/posix/sprofil.c index 1447a4f..d8a29db 100644 --- a/sysdeps/posix/sprofil.c +++ b/sysdeps/posix/sprofil.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <assert.h> #include <signal.h> #include <stdlib.h> @@ -202,7 +203,7 @@ insert (int i, unsigned long int start, unsigned long int end, struct prof *p, if (prof_info.num_regions == 0) r = malloc (sizeof (*r)); else - r = realloc (prof_info.region, (prof_info.num_regions + 1) * sizeof (*r)); + r = nrealloc (prof_info.region, (prof_info.num_regions + 1), sizeof (*r)); if (r == NULL) return -1; diff --git a/sysdeps/pthread/aio_misc.c b/sysdeps/pthread/aio_misc.c index 79153c8..bd2615a 100644 --- a/sysdeps/pthread/aio_misc.c +++ b/sysdeps/pthread/aio_misc.c @@ -17,6 +17,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <aio.h> #include <assert.h> #include <errno.h> @@ -123,8 +124,7 @@ get_elem (void) size_t new_max_size = pool_max_size + ROWS_STEP; struct requestlist **new_tab; - new_tab = (struct requestlist **) - realloc (pool, new_max_size * sizeof (struct requestlist *)); + new_tab = NREALLOC (pool, new_max_size, struct requestlist *); if (new_tab == NULL) return NULL; diff --git a/sysdeps/unix/ifreq.c b/sysdeps/unix/ifreq.c index 2db6d0c..2ada178 100644 --- a/sysdeps/unix/ifreq.c +++ b/sysdeps/unix/ifreq.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include "ifreq.h" @@ -75,5 +76,5 @@ __ifreq (struct ifreq **ifreqs, int *num_ifs, int sockfd) #endif *num_ifs = nifs; - *ifreqs = realloc (ifc.ifc_buf, nifs * sizeof (struct ifreq)); + *ifreqs = NREALLOC (ifc.ifc_buf, nifs, struct ifreq); } diff --git a/sysdeps/unix/sysv/linux/if_index.c b/sysdeps/unix/sysv/linux/if_index.c index c08bc34..be28dfc 100644 --- a/sysdeps/unix/sysv/linux/if_index.c +++ b/sysdeps/unix/sysv/linux/if_index.c @@ -15,6 +15,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include <alloca.h> #include <errno.h> #include <string.h> @@ -115,7 +116,7 @@ if_nameindex_netlink (void) } } - idx = malloc ((nifs + 1) * sizeof (struct if_nameindex)); + idx = NMALLOC ((nifs + 1), struct if_nameindex); if (idx == NULL) { nomem: diff --git a/sysdeps/unix/sysv/linux/ifreq.c b/sysdeps/unix/sysv/linux/ifreq.c index 4a55e8f..f591e1e 100644 --- a/sysdeps/unix/sysv/linux/ifreq.c +++ b/sysdeps/unix/sysv/linux/ifreq.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include "ifreq.h" #include <kernel-features.h> @@ -71,5 +72,5 @@ __ifreq (struct ifreq **ifreqs, int *num_ifs, int sockfd) __close (fd); *num_ifs = nifs; - *ifreqs = realloc (ifc.ifc_buf, nifs * sizeof (struct ifreq)); + *ifreqs = NREALLOC (ifc.ifc_buf, nifs, struct ifreq); } diff --git a/time/alt_digit.c b/time/alt_digit.c index 7cd5119..c5a461e 100644 --- a/time/alt_digit.c +++ b/time/alt_digit.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see <http://www.gnu.org/licenses/>. */ +#include <nmalloc.h> #include "../locale/localeinfo.h" #include <bits/libc-lock.h> #include <stdlib.h> @@ -54,7 +55,7 @@ _nl_init_alt_digit (struct __locale_data *current) if (ptr != NULL) { - data->alt_digits = malloc (100 * sizeof (const char *)); + data->alt_digits = NMALLOC (100, const char *); if (data->alt_digits != NULL) for (cnt = 0; cnt < 100; ++cnt) { @@ -125,7 +126,7 @@ _nl_get_walt_digit (unsigned int number, struct __locale_data *current) if (ptr != NULL) { - data->walt_digits = malloc (100 * sizeof (const uint32_t *)); + data->walt_digits = NMALLOC (100, const uint32_t *); if (data->walt_digits != NULL) for (cnt = 0; cnt < 100; ++cnt) { -- 1.8.4.rc3
Attachment:
nmalloc
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |