diff options
author | Matt Kraai <kraai@debian.org> | 2000-09-19 06:46:44 +0000 |
---|---|---|
committer | Matt Kraai <kraai@debian.org> | 2000-09-19 06:46:44 +0000 |
commit | 0b2da467a8e9cc34c267ac8c38fd69b267dde986 (patch) | |
tree | 5f946812074e04018571f7f3be264e93b387a872 | |
parent | 721119e1db5fdf4de940d777e411b1112116b500 (diff) | |
download | busybox-w32-0b2da467a8e9cc34c267ac8c38fd69b267dde986.tar.gz busybox-w32-0b2da467a8e9cc34c267ac8c38fd69b267dde986.tar.bz2 busybox-w32-0b2da467a8e9cc34c267ac8c38fd69b267dde986.zip |
Avoid segfaults by not using snprintf to copy strings.
-rw-r--r-- | lash.c | 3 | ||||
-rw-r--r-- | sh.c | 3 | ||||
-rw-r--r-- | shell/lash.c | 3 |
3 files changed, 6 insertions, 3 deletions
@@ -1023,7 +1023,8 @@ static int parseCommand(char **commandPtr, struct job *job, struct jobSet *jobLi | |||
1023 | 1023 | ||
1024 | /* Make some space to hold just the backticked command */ | 1024 | /* Make some space to hold just the backticked command */ |
1025 | charptr1 = charptr2 = xmalloc(1+ptr-src); | 1025 | charptr1 = charptr2 = xmalloc(1+ptr-src); |
1026 | snprintf(charptr1, 1+ptr-src, src); | 1026 | memcpy(charptr1, src, ptr-src); |
1027 | charptr1[ptr-src] = '\0'; | ||
1027 | newJob = xmalloc(sizeof(struct job)); | 1028 | newJob = xmalloc(sizeof(struct job)); |
1028 | /* Now parse and run the backticked command */ | 1029 | /* Now parse and run the backticked command */ |
1029 | if (!parseCommand(&charptr1, newJob, &njobList, inBg) | 1030 | if (!parseCommand(&charptr1, newJob, &njobList, inBg) |
@@ -1023,7 +1023,8 @@ static int parseCommand(char **commandPtr, struct job *job, struct jobSet *jobLi | |||
1023 | 1023 | ||
1024 | /* Make some space to hold just the backticked command */ | 1024 | /* Make some space to hold just the backticked command */ |
1025 | charptr1 = charptr2 = xmalloc(1+ptr-src); | 1025 | charptr1 = charptr2 = xmalloc(1+ptr-src); |
1026 | snprintf(charptr1, 1+ptr-src, src); | 1026 | memcpy(charptr1, src, ptr-src); |
1027 | charptr1[ptr-src] = '\0'; | ||
1027 | newJob = xmalloc(sizeof(struct job)); | 1028 | newJob = xmalloc(sizeof(struct job)); |
1028 | /* Now parse and run the backticked command */ | 1029 | /* Now parse and run the backticked command */ |
1029 | if (!parseCommand(&charptr1, newJob, &njobList, inBg) | 1030 | if (!parseCommand(&charptr1, newJob, &njobList, inBg) |
diff --git a/shell/lash.c b/shell/lash.c index a2969082f..cbaf16ef8 100644 --- a/shell/lash.c +++ b/shell/lash.c | |||
@@ -1023,7 +1023,8 @@ static int parseCommand(char **commandPtr, struct job *job, struct jobSet *jobLi | |||
1023 | 1023 | ||
1024 | /* Make some space to hold just the backticked command */ | 1024 | /* Make some space to hold just the backticked command */ |
1025 | charptr1 = charptr2 = xmalloc(1+ptr-src); | 1025 | charptr1 = charptr2 = xmalloc(1+ptr-src); |
1026 | snprintf(charptr1, 1+ptr-src, src); | 1026 | memcpy(charptr1, src, ptr-src); |
1027 | charptr1[ptr-src] = '\0'; | ||
1027 | newJob = xmalloc(sizeof(struct job)); | 1028 | newJob = xmalloc(sizeof(struct job)); |
1028 | /* Now parse and run the backticked command */ | 1029 | /* Now parse and run the backticked command */ |
1029 | if (!parseCommand(&charptr1, newJob, &njobList, inBg) | 1030 | if (!parseCommand(&charptr1, newJob, &njobList, inBg) |