mdev: fix a bug where we were eating argv[0] of helper
This commit is contained in:
parent
6da9b00f4f
commit
32dcc53b71
@ -18,6 +18,8 @@ mkdir mdev.testdir
|
|||||||
# We need mdev executable to be in chroot jail!
|
# We need mdev executable to be in chroot jail!
|
||||||
# (will still fail with dynamically linked one, though...)
|
# (will still fail with dynamically linked one, though...)
|
||||||
cp ../busybox mdev.testdir/mdev
|
cp ../busybox mdev.testdir/mdev
|
||||||
|
mkdir mdev.testdir/bin
|
||||||
|
cp ../busybox mdev.testdir/bin/sh 2>/dev/null # for testing cmd feature
|
||||||
mkdir mdev.testdir/etc
|
mkdir mdev.testdir/etc
|
||||||
mkdir mdev.testdir/dev
|
mkdir mdev.testdir/dev
|
||||||
mkdir -p mdev.testdir/sys/block/sda
|
mkdir -p mdev.testdir/sys/block/sda
|
||||||
@ -93,6 +95,20 @@ brw-r--r-- 1 0 0 a_sda
|
|||||||
" \
|
" \
|
||||||
"" ""
|
"" ""
|
||||||
|
|
||||||
|
# continuing to use directory structure from prev test
|
||||||
|
rm -rf mdev.testdir/dev/*
|
||||||
|
# here we complicate things by having non-matching group 1 and using %0
|
||||||
|
echo "sda 0:0 644 @echo @echo TEST" >mdev.testdir/etc/mdev.conf
|
||||||
|
testing "mdev command" \
|
||||||
|
"env - ACTION=add DEVPATH=/block/sda chroot mdev.testdir /mdev 2>&1;
|
||||||
|
ls -lnR mdev.testdir/dev | $FILTER_LS" \
|
||||||
|
"\
|
||||||
|
@echo TEST
|
||||||
|
mdev.testdir/dev:
|
||||||
|
brw-r--r-- 1 0 0 8,0 sda
|
||||||
|
" \
|
||||||
|
"" ""
|
||||||
|
|
||||||
# clean up
|
# clean up
|
||||||
rm -rf mdev.testdir
|
rm -rf mdev.testdir
|
||||||
|
|
||||||
|
@ -156,17 +156,17 @@ static void make_device(char *path, int delete)
|
|||||||
mode = strtoul(val, NULL, 8);
|
mode = strtoul(val, NULL, 8);
|
||||||
|
|
||||||
/* 4th field (opt): >alias */
|
/* 4th field (opt): >alias */
|
||||||
if (ENABLE_FEATURE_MDEV_RENAME) {
|
#if ENABLE_FEATURE_MDEV_RENAME
|
||||||
if (!next)
|
if (!next)
|
||||||
break;
|
break;
|
||||||
val = next;
|
if (*next == '>') {
|
||||||
next = next_field(val);
|
|
||||||
if (*val == '>') {
|
|
||||||
#if ENABLE_FEATURE_MDEV_RENAME_REGEXP
|
#if ENABLE_FEATURE_MDEV_RENAME_REGEXP
|
||||||
/* substitute %1..9 with off[1..9], if any */
|
|
||||||
char *s, *p;
|
char *s, *p;
|
||||||
unsigned i, n;
|
unsigned i, n;
|
||||||
|
|
||||||
|
val = next;
|
||||||
|
next = next_field(val);
|
||||||
|
/* substitute %1..9 with off[1..9], if any */
|
||||||
n = 0;
|
n = 0;
|
||||||
s = val;
|
s = val;
|
||||||
while (*s && *s++ == '%')
|
while (*s && *s++ == '%')
|
||||||
@ -189,10 +189,12 @@ static void make_device(char *path, int delete)
|
|||||||
s++;
|
s++;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
val = next;
|
||||||
|
next = next_field(val);
|
||||||
alias = xstrdup(val + 1);
|
alias = xstrdup(val + 1);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
#endif /* ENABLE_FEATURE_MDEV_RENAME */
|
||||||
|
|
||||||
/* The rest (opt): command to run */
|
/* The rest (opt): command to run */
|
||||||
if (!next)
|
if (!next)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user