← Commit list

081e38483

Rob Landley
Rob Landley
2006-08-03
SOURCE BUG Duration: 28s

Subject

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.

SOURCE BUG

This commit was genuinely broken at the time (not related to our build system): scripts/config/mkconfigs.c (2005-08-01 - 2006-10-05 arasi) uretilen bbconfigopts.h icine .config satirlarini kacissiz, ham newline'larla gömüyordu - gecerli C degildi, busybox'un kendi bb_mkdep araci bile parse edemiyordu (7d219aab7 ile duzeltildi, mkconfigs shell scripte cevrildi)

→ Bu hatanin tam hikayesini ve duzeltme diffini gor

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

coreutils/cut.c+2 -2
@@ -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++) {
coreutils/ls.c+1 -1
@@ -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);
}
coreutils/sort.c+1 -1
@@ -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) \
e2fsprogs/fsck.c+2 -2
@@ -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)
e2fsprogs/mke2fs.c+1 -1
@@ -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;
findutils/grep.c+1 -1
@@ -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 */
findutils/xargs.c+1 -1
@@ -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) */
include/libbb.h+0 -1
@@ -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);
libbb/xfuncs.c+0 -9
@@ -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
modutils/insmod.c+1 -1
@@ -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) {
modutils/modprobe.c+2 -2
@@ -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 );
networking/httpd.c+1 -1
@@ -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
networking/traceroute.c+5 -5
@@ -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)
shell/cmdedit.c+2 -2
@@ -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 {
util-linux/fdisk.c+2 -2
@@ -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;