diff options
author | andersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2004-07-30 23:52:08 +0000 |
---|---|---|
committer | andersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2004-07-30 23:52:08 +0000 |
commit | 4d3722493b756ba90cd14717dff4667e0c34cd78 (patch) | |
tree | 0bd2be3d7957fba80b8aa9c82d0cb716cee90bad | |
parent | dc0e2d0f0a022809b4827cfa8867d84c12d1e508 (diff) | |
download | busybox-w32-4d3722493b756ba90cd14717dff4667e0c34cd78.tar.gz busybox-w32-4d3722493b756ba90cd14717dff4667e0c34cd78.tar.bz2 busybox-w32-4d3722493b756ba90cd14717dff4667e0c34cd78.zip |
Simon Poole reports that awk segfaults when environment variables
with no value exist, i.e.
$ export BOB=''
% ./busybox awk
Segmentation fault
This patch teaches awk to not blow chunks on empty env variables.
-Erik
git-svn-id: svn://busybox.net/trunk/busybox@9054 69ca8d6d-28ef-0310-b511-8ec308f3f277
-rw-r--r-- | editors/awk.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/editors/awk.c b/editors/awk.c index af8958925..c0e1a71fe 100644 --- a/editors/awk.c +++ b/editors/awk.c | |||
@@ -2670,8 +2670,12 @@ extern int awk_main(int argc, char **argv) { | |||
2670 | for (envp=environ; *envp; envp++) { | 2670 | for (envp=environ; *envp; envp++) { |
2671 | s = bb_xstrdup(*envp); | 2671 | s = bb_xstrdup(*envp); |
2672 | s1 = strchr(s, '='); | 2672 | s1 = strchr(s, '='); |
2673 | if (!s1) { | ||
2674 | goto keep_going; | ||
2675 | } | ||
2673 | *(s1++) = '\0'; | 2676 | *(s1++) = '\0'; |
2674 | setvar_u(findvar(iamarray(V[ENVIRON]), s), s1); | 2677 | setvar_u(findvar(iamarray(V[ENVIRON]), s), s1); |
2678 | keep_going: | ||
2675 | free(s); | 2679 | free(s); |
2676 | } | 2680 | } |
2677 | 2681 | ||