diff options
-rw-r--r-- | shell/ash.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/shell/ash.c b/shell/ash.c index 90eaf6faf..b1f8f15d2 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -2420,13 +2420,12 @@ setvar(const char *name, const char *val, int flags) | |||
2420 | } | 2420 | } |
2421 | 2421 | ||
2422 | INT_OFF; | 2422 | INT_OFF; |
2423 | nameeq = ckmalloc(namelen + vallen + 2); | 2423 | nameeq = ckzalloc(namelen + vallen + 2); |
2424 | p = mempcpy(nameeq, name, namelen); | 2424 | p = mempcpy(nameeq, name, namelen); |
2425 | if (val) { | 2425 | if (val) { |
2426 | *p++ = '='; | 2426 | *p++ = '='; |
2427 | p = mempcpy(p, val, vallen); | 2427 | memcpy(p, val, vallen); |
2428 | } | 2428 | } |
2429 | *p = '\0'; | ||
2430 | vp = setvareq(nameeq, flags | VNOSAVE); | 2429 | vp = setvareq(nameeq, flags | VNOSAVE); |
2431 | INT_ON; | 2430 | INT_ON; |
2432 | 2431 | ||