aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2009-05-04 21:59:05 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2009-05-04 21:59:05 +0200
commit76f5e38c8228664680d915873186d891e64a3c0a (patch)
treeccc971a6b55f11e3f81a5f29148689e4162ef45b
parent6245202e7fc76992b838613a1c2bde79387a28c0 (diff)
downloadbusybox-76f5e38c8228664680d915873186d891e64a3c0a.tar.gz
mdev: revert last wrong commit
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--util-linux/mdev.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/util-linux/mdev.c b/util-linux/mdev.c
index 99e487532..7508930f7 100644
--- a/util-linux/mdev.c
+++ b/util-linux/mdev.c
@@ -101,8 +101,12 @@ static char *build_alias(char *alias, const char *device_name)
return alias;
}
-/* mknod in /dev based on a path like "/sys/block/hda/hda1" */
-/* NB: "mdev -s" may call us many times, do not leak memory/fds! */
+/* mknod in /dev based on a path like "/sys/block/hda/hda1"
+ * NB1: path parameter needs to have SCRATCH_SIZE scratch bytes
+ * after NUL, but we promise to not mangle (IOW: to restore if needed)
+ * path string.
+ * NB2: "mdev -s" may call us many times, do not leak memory/fds!
+ */
static void make_device(char *path, int delete)
{
char *device_name;
@@ -565,10 +569,7 @@ int mdev_main(int argc UNUSED_PARAM, char **argv)
make_device(temp, 1);
}
else if (strcmp(action, "add") == 0) {
- /* make_device mangles its parameter, use a copy */
- char *s = xstrdup(temp);
- make_device(s, 0);
- free(s);
+ make_device(temp, 0);
if (ENABLE_FEATURE_MDEV_LOAD_FIRMWARE) {
if (fw)
load_firmware(fw, temp);