diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2009-03-21 21:51:11 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2009-03-21 21:51:11 +0000 |
commit | 786ce17d6d602c471aab3cbd6ea00c854bfe9366 (patch) | |
tree | 9e22e6ea3bb4a0c3faabf79a5f4fc3eab9852b77 | |
parent | ccff0b962ca85acce8502256cf7e78bb1ca2d898 (diff) | |
download | busybox-w32-786ce17d6d602c471aab3cbd6ea00c854bfe9366.tar.gz busybox-w32-786ce17d6d602c471aab3cbd6ea00c854bfe9366.tar.bz2 busybox-w32-786ce17d6d602c471aab3cbd6ea00c854bfe9366.zip |
hush: fix strcpy of potentially overlapping strings
-rw-r--r-- | shell/hush.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/shell/hush.c b/shell/hush.c index bfd487cfb..2c4704a9c 100644 --- a/shell/hush.c +++ b/shell/hush.c | |||
@@ -2801,7 +2801,7 @@ static char *expand_string_to_string(const char *str) | |||
2801 | if (!list[0] || list[1]) | 2801 | if (!list[0] || list[1]) |
2802 | bb_error_msg_and_die("BUG in varexp2"); | 2802 | bb_error_msg_and_die("BUG in varexp2"); |
2803 | /* actually, just move string 2*sizeof(char*) bytes back */ | 2803 | /* actually, just move string 2*sizeof(char*) bytes back */ |
2804 | strcpy((char*)list, list[0]); | 2804 | overlapping_strcpy((char*)list, list[0]); |
2805 | debug_printf_expand("string_to_string='%s'\n", (char*)list); | 2805 | debug_printf_expand("string_to_string='%s'\n", (char*)list); |
2806 | return (char*)list; | 2806 | return (char*)list; |
2807 | } | 2807 | } |
@@ -2823,7 +2823,7 @@ static char* expand_strvec_to_string(char **argv) | |||
2823 | n++; | 2823 | n++; |
2824 | } | 2824 | } |
2825 | } | 2825 | } |
2826 | strcpy((char*)list, list[0]); | 2826 | overlapping_strcpy((char*)list, list[0]); |
2827 | debug_printf_expand("strvec_to_string='%s'\n", (char*)list); | 2827 | debug_printf_expand("strvec_to_string='%s'\n", (char*)list); |
2828 | return (char*)list; | 2828 | return (char*)list; |
2829 | } | 2829 | } |