summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtestsuite/mdev.tests16
-rw-r--r--util-linux/mdev.c5
2 files changed, 19 insertions, 2 deletions
diff --git a/testsuite/mdev.tests b/testsuite/mdev.tests
index 2285579..90379e6 100755
--- a/testsuite/mdev.tests
+++ b/testsuite/mdev.tests
@@ -111,6 +111,22 @@ brw-r--r-- 1 0 0 8,0 sda
# continuing to use directory structure from prev test
rm -rf mdev.testdir/dev/*
+echo "sda 0:0 644 =block/ @echo @echo TEST" >mdev.testdir/etc/mdev.conf
+testing "mdev move and command" \
+ "env - PATH=$PATH ACTION=add DEVPATH=/block/sda chroot mdev.testdir /mdev 2>&1;
+ ls -lnR mdev.testdir/dev | $FILTER_LS2" \
+"\
+@echo TEST
+mdev.testdir/dev:
+drwxr-xr-x 2 0 0 block
+
+mdev.testdir/dev/block:
+brw-r--r-- 1 0 0 sda
+" \
+ "" ""
+
+# continuing to use directory structure from prev test
+rm -rf mdev.testdir/dev/*
echo "@8,0 :1 644" >mdev.testdir/etc/mdev.conf
testing "mdev #maj,min and no explicit uid" \
"env - PATH=$PATH ACTION=add DEVPATH=/block/sda chroot mdev.testdir /mdev 2>&1;
diff --git a/util-linux/mdev.c b/util-linux/mdev.c
index 9ad1a6f..0460aa7 100644
--- a/util-linux/mdev.c
+++ b/util-linux/mdev.c
@@ -179,8 +179,9 @@ static void make_device(char *path, int delete)
unsigned i, n;
#endif
char *a = val;
- s = strchr(val, ' ');
- val = (s && s[1]) ? s+1 : NULL;
+ s = strchrnul(val, ' ');
+ val = (s[0] && s[1]) ? s+1 : NULL;
+ s[0] = '\0';
#if ENABLE_FEATURE_MDEV_RENAME_REGEXP
/* substitute %1..9 with off[1..9], if any */
n = 0;