aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2007-02-09 17:30:14 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2007-02-09 17:30:14 +0000
commitd244c5eaf80677bc785ada68d4bb805cdf2d4505 (patch)
tree1323b11d2c573ee4aff9e2a0864ce6977bf0d060
parentb477e18c1e4cf40f5463d24523a10870ece10888 (diff)
downloadbusybox-w32-d244c5eaf80677bc785ada68d4bb805cdf2d4505.tar.gz
busybox-w32-d244c5eaf80677bc785ada68d4bb805cdf2d4505.tar.bz2
busybox-w32-d244c5eaf80677bc785ada68d4bb805cdf2d4505.zip
msh: fix my buglet
-rw-r--r--shell/msh.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/shell/msh.c b/shell/msh.c
index a2da540b3..968f073cd 100644
--- a/shell/msh.c
+++ b/shell/msh.c
@@ -3157,12 +3157,15 @@ static int dochdir(struct op *t)
3157 cp = t->words[1]; 3157 cp = t->words[1];
3158 if (cp == NULL) { 3158 if (cp == NULL) {
3159 cp = homedir->value; 3159 cp = homedir->value;
3160 if (cp == NULL) 3160 if (cp != NULL)
3161 er = ": no home directory"; 3161 goto do_cd;
3162 } else if (chdir(cp) < 0) 3162 er = ": no home directory";
3163 } else {
3164 do_cd:
3165 if (chdir(cp) >= 0)
3166 return 0;
3163 er = ": bad directory"; 3167 er = ": bad directory";
3164 else 3168 }
3165 return 0;
3166 prs(cp != NULL ? cp : "cd"); 3169 prs(cp != NULL ? cp : "cd");
3167 err(er); 3170 err(er);
3168 return 1; 3171 return 1;