Convert codebase to use emalloc.c utility-functions

This also definitely increases readability and makes OOM-conditions
more consistent.
This commit is contained in:
FRIGN 2014-11-16 11:07:26 +01:00 committed by sin
parent 045fc62028
commit e17b9cdd0a
10 changed files with 22 additions and 36 deletions

3
cut.c
View File

@ -63,8 +63,7 @@ parselist(char *str)
if (*s == ',') if (*s == ',')
n++; n++;
} }
if (!(r = malloc(n * sizeof(Range)))) r = emalloc(n * sizeof(Range));
eprintf("malloc:");
for (s = str; n; n--, s++) { for (s = str; n; n--, s++) {
r->min = (*s == '-') ? 1 : strtoul(s, &s, 10); r->min = (*s == '-') ? 1 : strtoul(s, &s, 10);
r->max = (*s == '-') ? strtoul(s + 1, &s, 10) : r->min; r->max = (*s == '-') ? strtoul(s + 1, &s, 10) : r->min;

6
grep.c
View File

@ -111,10 +111,8 @@ addpattern(const char *pattern)
{ {
struct plist *pnode; struct plist *pnode;
if (!(pnode = malloc(sizeof(*pnode)))) pnode = emalloc(sizeof(*pnode));
eprintf("malloc:"); pnode->pattern = estrdup(pattern);
if (!(pnode->pattern = strdup(pattern)))
eprintf("strdup:");
pnode->next = phead; pnode->next = phead;
phead = pnode; phead = pnode;
} }

10
ls.c
View File

@ -92,8 +92,8 @@ main(int argc, char *argv[])
if (argc == 0) if (argc == 0)
*--argv = ".", argc++; *--argv = ".", argc++;
if (!(ents = malloc(argc * sizeof *ents))) ents = emalloc(argc * sizeof(*ents));
eprintf("malloc:");
for (i = 0; i < argc; i++) for (i = 0; i < argc; i++)
mkent(&ents[i], argv[i], 1); mkent(&ents[i], argv[i], 1);
qsort(ents, argc, sizeof *ents, entcmp); qsort(ents, argc, sizeof *ents, entcmp);
@ -154,10 +154,8 @@ lsdir(const char *path)
mkent(&ent, d->d_name, Fflag || lflag || iflag); mkent(&ent, d->d_name, Fflag || lflag || iflag);
output(&ent); output(&ent);
} else { } else {
if (!(ents = realloc(ents, ++n * sizeof *ents))) ents = erealloc(ents, ++n * sizeof *ents);
eprintf("realloc:"); p = emalloc((sz = strlen(d->d_name)+1));
if (!(p = malloc((sz = strlen(d->d_name)+1))))
eprintf("malloc:");
memcpy(p, d->d_name, sz); memcpy(p, d->d_name, sz);
mkent(&ents[n-1], p, tflag || Fflag || lflag || iflag); mkent(&ents[n-1], p, tflag || Fflag || lflag || iflag);
} }

View File

@ -59,8 +59,7 @@ main(int argc, char *argv[])
if (len == (size_t) - 1) if (len == (size_t) - 1)
eprintf("invalid delimiter\n"); eprintf("invalid delimiter\n");
if (!(delim = malloc((len + 1) * sizeof(*delim)))) delim = emalloc((len + 1) * sizeof(*delim));
eprintf("out of memory\n");
mbstowcs(delim, adelim, len); mbstowcs(delim, adelim, len);
len = unescape(delim); len = unescape(delim);
@ -68,8 +67,7 @@ main(int argc, char *argv[])
eprintf("no delimiters specified\n"); eprintf("no delimiters specified\n");
/* populate file list */ /* populate file list */
if (!(dsc = malloc(argc * sizeof(*dsc)))) dsc = emalloc(argc * sizeof(*dsc));
eprintf("out of memory\n");
for (i = 0; i < argc; i++) { for (i = 0; i < argc; i++) {
if (strcmp(argv[i], "-") == 0) if (strcmp(argv[i], "-") == 0)

5
tail.c
View File

@ -75,8 +75,9 @@ taketail(FILE *fp, const char *str, long n)
long i, j; long i, j;
size_t *size = NULL; size_t *size = NULL;
if (!(ring = calloc(n, sizeof *ring)) || !(size = calloc(n, sizeof *size))) ring = ecalloc(n, sizeof *ring);
eprintf("calloc:"); size = ecalloc(n, sizeof *size);
for (i = j = 0; agetline(&ring[i], &size[i], fp) != -1; i = j = (i + 1) % n) for (i = j = 0; agetline(&ring[i], &size[i], fp) != -1; i = j = (i + 1) % n)
; ;
if (ferror(fp)) if (ferror(fp))

3
tee.c
View File

@ -29,8 +29,7 @@ main(int argc, char *argv[])
} ARGEND; } ARGEND;
nfps = argc + 1; nfps = argc + 1;
if (!(fps = calloc(nfps, sizeof *fps))) fps = ecalloc(nfps, sizeof *fps);
eprintf("calloc:");
for (i = 0; argc > 0; argc--, argv++, i++) for (i = 0; argc > 0; argc--, argv++, i++)
if (!(fps[i] = fopen(*argv, aflag ? "a" : "w"))) if (!(fps[i] = fopen(*argv, aflag ? "a" : "w")))

4
uniq.c
View File

@ -81,8 +81,8 @@ uniqline(char *l)
prevline = NULL; prevline = NULL;
} }
if (l && !(prevline = strdup(l))) if (l)
eprintf("strdup:"); prevline = estrdup(l);
prevlinecount = 1; prevlinecount = 1;
} }

View File

@ -18,7 +18,5 @@ apathmax(char **p, long *size)
eprintf("pathconf:"); eprintf("pathconf:");
} }
} }
*p = emalloc(*size);
if (!(*p = malloc(*size)))
eprintf("malloc:");
} }

View File

@ -16,14 +16,11 @@ getlines(FILE *fp, struct linebuf *b)
while ((len = agetline(&line, &size, fp)) != -1) { while ((len = agetline(&line, &size, fp)) != -1) {
if (++b->nlines > b->capacity) { if (++b->nlines > b->capacity) {
b->capacity += 512; b->capacity += 512;
nline = realloc(b->lines, b->capacity * sizeof(*b->lines)); nline = erealloc(b->lines, b->capacity * sizeof(*b->lines));
if (!nline)
eprintf("realloc:");
b->lines = nline; b->lines = nline;
} }
linelen = len + 1; linelen = len + 1;
if (!(b->lines[b->nlines-1] = malloc(linelen))) b->lines[b->nlines-1] = emalloc(linelen);
eprintf("malloc:");
memcpy(b->lines[b->nlines-1], line, linelen); memcpy(b->lines[b->nlines-1], line, linelen);
} }
free(line); free(line);

10
xargs.c
View File

@ -72,11 +72,11 @@ main(int argc, char *argv[])
argsz = 0; i = 0; a = 0; argsz = 0; i = 0; a = 0;
if (argc > 0) { if (argc > 0) {
for (; i < argc; i++) { for (; i < argc; i++) {
cmd[i] = strdup(argv[i]); cmd[i] = estrdup(argv[i]);
argsz += strlen(cmd[i]) + 1; argsz += strlen(cmd[i]) + 1;
} }
} else { } else {
cmd[i] = strdup("/bin/echo"); cmd[i] = estrdup("/bin/echo");
argsz += strlen(cmd[i]) + 1; argsz += strlen(cmd[i]) + 1;
i++; i++;
} }
@ -88,7 +88,7 @@ main(int argc, char *argv[])
leftover = 1; leftover = 1;
break; break;
} }
cmd[i] = strdup(arg); cmd[i] = estrdup(arg);
argsz += strlen(cmd[i]) + 1; argsz += strlen(cmd[i]) + 1;
i++; i++;
a++; a++;
@ -134,9 +134,7 @@ fillargbuf(int ch)
{ {
if (argbpos >= argbsz) { if (argbpos >= argbsz) {
argbsz = argbpos == 0 ? 1 : argbsz * 2; argbsz = argbpos == 0 ? 1 : argbsz * 2;
argb = realloc(argb, argbsz); argb = erealloc(argb, argbsz);
if (!argb)
eprintf("realloc:");
} }
argb[argbpos] = ch; argb[argbpos] = ch;
} }