[PATCH] ash: an unset dynamic variable should not be dynamic
Ron Yorston
rmy at pobox.com
Mon Apr 8 15:36:24 UTC 2019
Commit b28d4c346 (ash: [VAR] Move unsetvar functionality into setvareq)
dropped the code that caused dynamic variables to lose their special
properties when unset. Add it back again.
function old new delta
setvareq 346 360 +14
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/0 up/down: 14/0) Total: 14 bytes
Signed-off-by: Ron Yorston <rmy at pobox.com>
---
shell/ash.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/shell/ash.c b/shell/ash.c
index 34d5d6d68..255d57e62 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -2364,6 +2364,10 @@ setvareq(char *s, int flags)
}
flags |= vp->flags & ~(VTEXTFIXED|VSTACK|VNOSAVE|VUNSET);
+#if ENABLE_ASH_RANDOM_SUPPORT
+ if (flags & VUNSET)
+ flags &= ~VDYNAMIC;
+#endif
} else {
/* variable s is not found */
if (flags & VNOSET)
--
2.20.1
More information about the busybox
mailing list