[BusyBox-cvs] svn commit: trunk/busybox/e2fsprogs
vapier at busybox.net
vapier at busybox.net
Mon Apr 25 05:24:36 UTC 2005
Author: vapier
Date: 2005-04-24 23:24:35 -0600 (Sun, 24 Apr 2005)
New Revision: 10179
Log:
use asprintf in place of malloc/sprintf as suggested by solar
Modified:
trunk/busybox/e2fsprogs/chattr.c
trunk/busybox/e2fsprogs/lsattr.c
Changeset:
Modified: trunk/busybox/e2fsprogs/chattr.c
===================================================================
--- trunk/busybox/e2fsprogs/chattr.c 2005-04-25 05:00:33 UTC (rev 10178)
+++ trunk/busybox/e2fsprogs/chattr.c 2005-04-25 05:24:35 UTC (rev 10179)
@@ -167,11 +167,9 @@
/*if (strcmp(de->d_name, ".") && strcmp(de->d_name, "..")) {*/
if (de->d_name[0] == '.' && (de->d_name[1] == '\0' || \
(de->d_name[1] == '.' && de->d_name[2] == '\0'))) {
-
- char *path = malloc(strlen(dir_name) + 1 + strlen(de->d_name) + 1);
- if (!path)
- bb_error_msg_and_die("Couldn't allocate path variable in chattr_dir_proc");
- sprintf(path, "%s/%s", dir_name, de->d_name);
+ char *path;
+ if (asprintf(&path, "%s/%s", dir_name, de->d_name) == -1)
+ bb_error_msg_and_die("asprintf failed");
change_attributes(path);
free(path);
}
Modified: trunk/busybox/e2fsprogs/lsattr.c
===================================================================
--- trunk/busybox/e2fsprogs/lsattr.c 2005-04-25 05:00:33 UTC (rev 10178)
+++ trunk/busybox/e2fsprogs/lsattr.c 2005-04-25 05:24:35 UTC (rev 10179)
@@ -101,29 +101,31 @@
{
STRUCT_STAT st;
char *path;
- int dir_len = strlen(dir_name);
+ int i = strlen(dir_name);
- path = malloc(dir_len + strlen(de->d_name) + 2);
+ if (i && dir_name[i-1] == '/')
+ i = asprintf(&path, "%s%s", dir_name, de->d_name);
+ else
+ i = asprintf(&path, "%s/%s", dir_name, de->d_name);
+ if (i == -1)
+ bb_perror_msg_and_die("asprintf failed");
- if (dir_len && dir_name[dir_len-1] == '/')
- sprintf(path, "%s%s", dir_name, de->d_name);
- else
- sprintf(path, "%s/%s", dir_name, de->d_name);
if (LSTAT(path, &st) == -1)
bb_perror_msg(path);
else {
if (de->d_name[0] != '.' || (flags & OPT_ALL)) {
list_attributes(path);
if (S_ISDIR(st.st_mode) && (flags & OPT_RECUR) &&
- strcmp(de->d_name, ".") &&
- strcmp(de->d_name, "..")) {
+ strcmp(de->d_name, ".") && strcmp(de->d_name, "..")) {
printf("\n%s:\n", path);
iterate_on_dir(path, lsattr_dir_proc, NULL);
printf("\n");
}
}
}
+
free(path);
+
return 0;
}
More information about the busybox-cvs
mailing list