Lines 1-36
Link Here
|
1 |
--- src/unshar.c.orig 1995-11-21 17:22:14.000000000 +0100 |
|
|
2 |
+++ src/unshar.c 2004-09-29 15:09:44.682469264 +0200 |
3 |
@@ -346,8 +346,8 @@ |
4 |
{ |
5 |
size_t size_read; |
6 |
FILE *file; |
7 |
- char name_buffer[NAME_BUFFER_SIZE]; |
8 |
- char copy_buffer[NAME_BUFFER_SIZE]; |
9 |
+ char name_buffer[NAME_BUFFER_SIZE] = {'\0'}; |
10 |
+ char copy_buffer[NAME_BUFFER_SIZE] = {'\0'}; |
11 |
int optchar; |
12 |
|
13 |
program_name = argv[0]; |
14 |
@@ -409,14 +409,14 @@ |
15 |
if (optind < argc) |
16 |
for (; optind < argc; optind++) |
17 |
{ |
18 |
- if (argv[optind][0] == '/') |
19 |
- stpcpy (name_buffer, argv[optind]); |
20 |
- else |
21 |
- { |
22 |
- char *cp = stpcpy (name_buffer, current_directory); |
23 |
- *cp++ = '/'; |
24 |
- stpcpy (cp, argv[optind]); |
25 |
- } |
26 |
+ if (argv[optind][0] == '/') { |
27 |
+ strncpy (name_buffer, argv[optind], sizeof(name_buffer)); |
28 |
+ name_buffer[sizeof(name_buffer)-1] = '\0'; |
29 |
+ } |
30 |
+ else { |
31 |
+ snprintf(name_buffer, sizeof(name_buffer),"%s/%s", current_directory, argv[optind]); |
32 |
+ name_buffer[sizeof(name_buffer)-1] = '\0'; |
33 |
+ } |
34 |
if (file = fopen (name_buffer, "r"), !file) |
35 |
error (EXIT_FAILURE, errno, name_buffer); |
36 |
unarchive_shar_file (name_buffer, file); |