diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2022-03-01 10:08:59 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2022-03-01 10:10:22 +0100 |
commit | 5fe20cf3212fbada86fb75cf13064caed6a5f3a9 (patch) | |
tree | d19fb9ccf186b4cfa0706abeb177df0a10760a21 | |
parent | 7750b5a25a8cf9081b7c248687c876d0068e85bb (diff) | |
download | busybox-w32-5fe20cf3212fbada86fb75cf13064caed6a5f3a9.tar.gz busybox-w32-5fe20cf3212fbada86fb75cf13064caed6a5f3a9.tar.bz2 busybox-w32-5fe20cf3212fbada86fb75cf13064caed6a5f3a9.zip |
ash: do not truncate failed tilde expansion on unknown user names
Do not skip over "*p = c;" statement.
Testcase: echo ~~nouser/qwe
function old new delta
argstr 1396 1406 +10
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | shell/ash.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/shell/ash.c b/shell/ash.c index 44ec2eafd..ef4a47afe 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -6532,9 +6532,7 @@ exptilde(char *startp, int flag) | |||
6532 | home = lookupvar("HOME"); | 6532 | home = lookupvar("HOME"); |
6533 | } else { | 6533 | } else { |
6534 | pw = getpwnam(name); | 6534 | pw = getpwnam(name); |
6535 | if (pw == NULL) | 6535 | home = pw ? pw->pw_dir : NULL; |
6536 | goto lose; | ||
6537 | home = pw->pw_dir; | ||
6538 | } | 6536 | } |
6539 | *p = c; | 6537 | *p = c; |
6540 | if (!home) | 6538 | if (!home) |