From 081e38483ec55dcfca3d92434fe94f0777ed962d Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Thu, 3 Aug 2006 20:07:35 +0000 Subject: [PATCH] Remove xcalloc() and convert its callers to xzalloc(). About half of them were using "1" as one of the arguments anyway, and as for the rest a multiply and a push isn't noticeably bigger than pushing two arguments on the stack. --- coreutils/cut.c | 4 ++-- coreutils/ls.c | 2 +- coreutils/sort.c | 2 +- e2fsprogs/fsck.c | 4 ++-- e2fsprogs/mke2fs.c | 2 +- findutils/grep.c | 2 +- findutils/xargs.c | 2 +- include/libbb.h | 1 - libbb/xfuncs.c | 9 --------- modutils/insmod.c | 2 +- modutils/modprobe.c | 4 ++-- networking/httpd.c | 2 +- networking/traceroute.c | 10 +++++----- shell/cmdedit.c | 4 ++-- util-linux/fdisk.c | 4 ++-- 15 files changed, 22 insertions(+), 32 deletions(-) diff --git a/coreutils/cut.c b/coreutils/cut.c index 98fdb5356..1b80e7e73 100644 --- a/coreutils/cut.c +++ b/coreutils/cut.c @@ -135,7 +135,7 @@ static void cut_line_by_chars(const char *line) { int c, l; /* set up a list so we can keep track of what's been printed */ - char *printed = xcalloc(strlen(line), sizeof(char)); + char *printed = xzalloc(strlen(line)); /* print the chars specified in each cut list */ for (c = 0; c < nlists; c++) { @@ -172,7 +172,7 @@ static void cut_line_by_fields(char *line) } /* set up a list so we can keep track of what's been printed */ - printed = xcalloc(strlen(line), sizeof(char)); + printed = xzalloc(strlen(line)); /* process each list on this line, for as long as we've got a line to process */ for (c = 0; c < nlists && line; c++) { diff --git a/coreutils/ls.c b/coreutils/ls.c index 6b9fbbfc9..828127a4a 100644 --- a/coreutils/ls.c +++ b/coreutils/ls.c @@ -300,7 +300,7 @@ static struct dnode **dnalloc(int num) if (num < 1) return (NULL); - p = (struct dnode **) xcalloc((size_t) num, (size_t) (sizeof(struct dnode *))); + p = (struct dnode **) xzalloc(num * sizeof(struct dnode *)); return (p); } diff --git a/coreutils/sort.c b/coreutils/sort.c index 195e13d13..ea7752d2a 100644 --- a/coreutils/sort.c +++ b/coreutils/sort.c @@ -120,7 +120,7 @@ static struct sort_key *add_key(void) { struct sort_key **pkey=&key_list; while(*pkey) pkey=&((*pkey)->next_key); - return *pkey=xcalloc(1,sizeof(struct sort_key)); + return *pkey = xzalloc(sizeof(struct sort_key)); } #define GET_LINE(fp) (global_flags&FLAG_z) ? bb_get_chunk_from_file(fp,NULL) \ diff --git a/e2fsprogs/fsck.c b/e2fsprogs/fsck.c index afb6f0c7d..99ffed1c5 100644 --- a/e2fsprogs/fsck.c +++ b/e2fsprogs/fsck.c @@ -877,8 +877,8 @@ static void compile_fs_type(char *fs_type, struct fs_type_compile *cmp) } } - cmp->list = xcalloc(num, sizeof(char *)); - cmp->type = xcalloc(num, sizeof(int)); + cmp->list = xzalloc(num * sizeof(char *)); + cmp->type = xzalloc(num * sizeof(int)); cmp->negate = 0; if (!fs_type) diff --git a/e2fsprogs/mke2fs.c b/e2fsprogs/mke2fs.c index ea6afb92c..687f18567 100644 --- a/e2fsprogs/mke2fs.c +++ b/e2fsprogs/mke2fs.c @@ -401,7 +401,7 @@ static errcode_t zero_blocks(ext2_filsys fs, blk_t blk, int num, } /* Allocate the zeroizing buffer if necessary */ if (!buf) { - buf = xcalloc(fs->blocksize, STRIDE_LENGTH); + buf = xzalloc(fs->blocksize * STRIDE_LENGTH); } /* OK, do the write loop */ next_update = 0; diff --git a/findutils/grep.c b/findutils/grep.c index b53bf490a..c2c4e7095 100644 --- a/findutils/grep.c +++ b/findutils/grep.c @@ -321,7 +321,7 @@ int grep_main(int argc, char **argv) lines_before = 0; lines_after = 0; } else if(lines_before > 0) - before_buf = (char **)xcalloc(lines_before, sizeof(char *)); + before_buf = (char **)xzalloc(lines_before * sizeof(char *)); } #else /* with auto sanity checks */ diff --git a/findutils/xargs.c b/findutils/xargs.c index e46708303..d067a3f48 100644 --- a/findutils/xargs.c +++ b/findutils/xargs.c @@ -503,7 +503,7 @@ int xargs_main(int argc, char **argv) /* allocating pointers for execvp: a*arg, n*arg from stdin, NULL */ - args = xcalloc(n + a + 1, sizeof(char *)); + args = xzalloc((n + a + 1) * sizeof(char *)); /* Store the command to be executed (taken from the command line) */ diff --git a/include/libbb.h b/include/libbb.h index 5b2977fce..745f8372b 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -230,7 +230,6 @@ void run_applet_by_name(const char *name, int argc, char **argv); extern void *xmalloc(size_t size); extern void *xrealloc(void *old, size_t size); extern void *xzalloc(size_t size); -extern void *xcalloc(size_t nmemb, size_t size); extern char *xstrdup (const char *s); extern char *xstrndup (const char *s, int n); diff --git a/libbb/xfuncs.c b/libbb/xfuncs.c index 699d09c67..31f0febca 100644 --- a/libbb/xfuncs.c +++ b/libbb/xfuncs.c @@ -41,15 +41,6 @@ void *xzalloc(size_t size) } #endif -#ifdef L_xcalloc -void *xcalloc(size_t nmemb, size_t size) -{ - void *ptr = calloc(nmemb, size); - if (ptr == NULL && nmemb != 0 && size != 0) - bb_error_msg_and_die(bb_msg_memory_exhausted); - return ptr; -} -#endif #endif /* DMALLOC */ #ifdef L_xstrdup diff --git a/modutils/insmod.c b/modutils/insmod.c index be41e4449..614eb2f6b 100644 --- a/modutils/insmod.c +++ b/modutils/insmod.c @@ -3490,7 +3490,7 @@ static struct obj_file *obj_load(FILE * fp, int loadprogbits) /* Allocate space for a table of local symbols. */ j = f->local_symtab_size = sec->header.sh_info; - f->local_symtab = xcalloc(j, sizeof(struct obj_symbol *)); + f->local_symtab = xzalloc(j * sizeof(struct obj_symbol *)); /* Insert all symbols into the hash table. */ for (j = 1, ++sym; j < nsym; ++j, ++sym) { diff --git a/modutils/modprobe.c b/modutils/modprobe.c index 5a94c7c92..efb119e3e 100644 --- a/modutils/modprobe.c +++ b/modutils/modprobe.c @@ -294,10 +294,10 @@ static void include_conf ( struct dep_t **first, struct dep_t **current, char *b if ( parse_tag_value ( buffer + 6, &alias, &mod )) { /* handle alias as a module dependent on the aliased module */ if ( !*current ) { - (*first) = (*current) = (struct dep_t *) xcalloc ( 1, sizeof ( struct dep_t )); + (*first) = (*current) = (struct dep_t *) xzalloc (sizeof ( struct dep_t )); } else { - (*current)-> m_next = (struct dep_t *) xcalloc ( 1, sizeof ( struct dep_t )); + (*current)-> m_next = (struct dep_t *) xzalloc (sizeof ( struct dep_t )); (*current) = (*current)-> m_next; } (*current)-> m_name = xstrdup ( alias ); diff --git a/networking/httpd.c b/networking/httpd.c index 4e0ab92d5..8852cbb62 100644 --- a/networking/httpd.c +++ b/networking/httpd.c @@ -1929,7 +1929,7 @@ int httpd_main(int argc, char *argv[]) USE_FEATURE_HTTPD_AUTH_MD5(const char *pass;) - config = xcalloc(1, sizeof(*config)); + config = xzalloc(sizeof(*config)); #ifdef CONFIG_FEATURE_HTTPD_BASIC_AUTH config->realm = "Web Server Authentication"; #endif diff --git a/networking/traceroute.c b/networking/traceroute.c index 446490303..9c1d6346e 100644 --- a/networking/traceroute.c +++ b/networking/traceroute.c @@ -375,7 +375,7 @@ ifaddrlist(struct IFADDRLIST **ipaddrp) ifend = (struct ifreq *)((char *)ibuf + ifc.ifc_len); nipaddr = 1 + (ifc.ifc_len / sizeof(struct ifreq)); - st_ifaddrlist = xcalloc(nipaddr, sizeof(struct IFADDRLIST)); + st_ifaddrlist = xzalloc(nipaddr * sizeof(struct IFADDRLIST)); al = st_ifaddrlist; nipaddr = 0; @@ -872,12 +872,12 @@ gethostinfo(const char *host) char **p; u_int32_t addr, *ap; - hi = xcalloc(1, sizeof(*hi)); + hi = xzalloc(sizeof(*hi)); addr = inet_addr(host); if ((int32_t)addr != -1) { hi->name = xstrdup(host); hi->n = 1; - hi->addrs = xcalloc(1, sizeof(hi->addrs[0])); + hi->addrs = xzalloc(sizeof(hi->addrs[0])); hi->addrs[0] = addr; return hi; } @@ -889,7 +889,7 @@ gethostinfo(const char *host) for (n = 0, p = hp->h_addr_list; *p != NULL; ++n, ++p) continue; hi->n = n; - hi->addrs = xcalloc(n, sizeof(hi->addrs[0])); + hi->addrs = xzalloc(n * sizeof(hi->addrs[0])); for (ap = hi->addrs, p = hp->h_addr_list; *p != NULL; ++ap, ++p) memcpy(ap, *p, sizeof(*ap)); return hi; @@ -1161,7 +1161,7 @@ traceroute_main(int argc, char *argv[]) xsetgid(getgid()); xsetuid(getuid()); - outip = (struct ip *)xcalloc(1, (unsigned)packlen); + outip = (struct ip *)xzalloc(packlen); outip->ip_v = IPVERSION; if (tos_str) diff --git a/shell/cmdedit.c b/shell/cmdedit.c index 0af1a2ad0..03aaa3b2e 100644 --- a/shell/cmdedit.c +++ b/shell/cmdedit.c @@ -311,7 +311,7 @@ static void parse_prompt(const char *prmt_ptr) int prmt_len = 0; size_t cur_prmt_len = 0; char flg_not_length = '['; - char *prmt_mem_ptr = xcalloc(1, 1); + char *prmt_mem_ptr = xzalloc(1); char *pwd_buf = xgetcwd(0); char buf2[PATH_MAX + 1]; char buf[2]; @@ -344,7 +344,7 @@ static void parse_prompt(const char *prmt_ptr) case 'h': pbuf = hostname_buf; if (pbuf == 0) { - pbuf = xcalloc(256, 1); + pbuf = xzalloc(256); if (gethostname(pbuf, 255) < 0) { strcpy(pbuf, "?"); } else { diff --git a/util-linux/fdisk.c b/util-linux/fdisk.c index 1c935463e..310bd555e 100644 --- a/util-linux/fdisk.c +++ b/util-linux/fdisk.c @@ -5162,7 +5162,7 @@ add_partition(int n, int sys) ext_index = n; pen->ext_pointer = p; pe4->offset = extended_offset = start; - pe4->sectorbuffer = xcalloc(1, sector_size); + pe4->sectorbuffer = xzalloc(sector_size); pe4->part_table = pt_offset(pe4->sectorbuffer, 0); pe4->ext_pointer = pe4->part_table + 1; pe4->changed = 1; @@ -5176,7 +5176,7 @@ add_logical(void) if (partitions > 5 || ptes[4].part_table->sys_ind) { struct pte *pe = &ptes[partitions]; - pe->sectorbuffer = xcalloc(1, sector_size); + pe->sectorbuffer = xzalloc(sector_size); pe->part_table = pt_offset(pe->sectorbuffer, 0); pe->ext_pointer = pe->part_table + 1; pe->offset = 0;