Fix calls to {m,c,re}alloc so that they use x{m,c,re}alloc instead of
segfaulting or handling errors the same way themselves.
diff --git a/coreutils/ln.c b/coreutils/ln.c
index 8b8fa1c..d5f44ea 100644
--- a/coreutils/ln.c
+++ b/coreutils/ln.c
@@ -90,7 +90,7 @@
if (linkIntoDirFlag == TRUE) {
char *baseName = get_last_path_component(*argv);
- linkName = (char *)malloc(strlen(dirName)+strlen(baseName)+2);
+ linkName = (char *)xmalloc(strlen(dirName)+strlen(baseName)+2);
strcpy(linkName, dirName);
if(dirName[strlen(dirName)-1] != '/')
strcat(linkName, "/");
diff --git a/coreutils/sort.c b/coreutils/sort.c
index 6af5c4d..a74f96a 100644
--- a/coreutils/sort.c
+++ b/coreutils/sort.c
@@ -64,7 +64,7 @@
static Line *line_alloc()
{
Line *self;
- self = malloc(1 * sizeof(Line));
+ self = xmalloc(1 * sizeof(Line));
return self;
}
@@ -76,9 +76,6 @@
if ((cstring = get_line_from_file(src))) {
self = line_alloc();
- if (self == NULL) {
- return NULL;
- }
self->data = cstring;
self->next = NULL;
return self;
@@ -173,10 +170,7 @@
Line *line;
/* mallocate array of Line*s */
- self->sorted = (Line **) malloc(self->len * sizeof(Line *));
- if (self->sorted == NULL) {
- return NULL;
- }
+ self->sorted = (Line **) xmalloc(self->len * sizeof(Line *));
/* fill array w/ List's contents */
i = 0;
@@ -294,4 +288,4 @@
return(0);
}
-/* $Id: sort.c,v 1.20 2000/07/16 20:57:15 kraai Exp $ */
+/* $Id: sort.c,v 1.21 2000/09/13 02:46:13 kraai Exp $ */
diff --git a/coreutils/tail.c b/coreutils/tail.c
index c940bfe..dcb4f67 100644
--- a/coreutils/tail.c
+++ b/coreutils/tail.c
@@ -87,12 +87,12 @@
ssize_t f_size=0;
bs=BUFSIZ;
- line=malloc(bs);
+ line=xmalloc(bs);
while(1) {
bytes_read=read(fd,line,bs);
if(bytes_read<=0)
break;
- buffer=realloc(buffer,f_size+bytes_read);
+ buffer=xrealloc(buffer,f_size+bytes_read);
memcpy(&buffer[f_size],line,bytes_read);
filelocation=f_size+=bytes_read;
}
@@ -150,8 +150,8 @@
void add_file(char *name)
{
++n_files;
- files = realloc(files, n_files);
- files[n_files - 1] = (char *) malloc(strlen(name) + 1);
+ files = xrealloc(files, n_files);
+ files[n_files - 1] = (char *) xmalloc(strlen(name) + 1);
strcpy(files[n_files - 1], name);
}
@@ -268,13 +268,13 @@
units=-11;
if(units>0)
units--;
- fd=malloc(sizeof(int)*n_files);
+ fd=xmalloc(sizeof(int)*n_files);
if (n_files == 1)
#ifndef BB_FEATURE_SIMPLE_TAIL
if (!verbose)
#endif
show_headers = 0;
- buffer=malloc(BUFSIZ);
+ buffer=xmalloc(BUFSIZ);
for (test = 0; test < n_files; test++) {
if (show_headers)
printf("==> %s <==\n", files[test]);
diff --git a/coreutils/test.c b/coreutils/test.c
index 6dde718..a2bec44 100644
--- a/coreutils/test.c
+++ b/coreutils/test.c
@@ -555,9 +555,7 @@
initialize_group_array ()
{
ngroups = getgroups(0, NULL);
- if ((group_array = realloc(group_array, ngroups * sizeof(gid_t))) == NULL)
- fatalError("Out of space\n");
-
+ group_array = xrealloc(group_array, ngroups * sizeof(gid_t));
getgroups(ngroups, group_array);
}