Lines 346-353
Link Here
|
346 |
{ |
346 |
{ |
347 |
size_t size_read; |
347 |
size_t size_read; |
348 |
FILE *file; |
348 |
FILE *file; |
349 |
char name_buffer[NAME_BUFFER_SIZE]; |
349 |
char name_buffer[NAME_BUFFER_SIZE] = {'\0'}; |
350 |
char copy_buffer[NAME_BUFFER_SIZE]; |
350 |
char copy_buffer[NAME_BUFFER_SIZE] = {'\0'}; |
351 |
int optchar; |
351 |
int optchar; |
352 |
|
352 |
|
353 |
program_name = argv[0]; |
353 |
program_name = argv[0]; |
Lines 409-422
Link Here
|
409 |
if (optind < argc) |
409 |
if (optind < argc) |
410 |
for (; optind < argc; optind++) |
410 |
for (; optind < argc; optind++) |
411 |
{ |
411 |
{ |
412 |
if (argv[optind][0] == '/') |
412 |
if (argv[optind][0] == '/') { |
413 |
stpcpy (name_buffer, argv[optind]); |
413 |
strncpy (name_buffer, argv[optind], sizeof(name_buffer)); |
414 |
else |
414 |
name_buffer[sizeof(name_buffer)-1] = '\0'; |
415 |
{ |
415 |
} |
416 |
char *cp = stpcpy (name_buffer, current_directory); |
416 |
else { |
417 |
*cp++ = '/'; |
417 |
char *cp = (char *)malloc(strlen(name_buffer)+1); |
418 |
stpcpy (cp, argv[optind]); |
418 |
*cp++ = '/'; |
419 |
} |
419 |
strncpy(cp, argv[optind], sizeof(name_buffer)); |
|
|
420 |
} |
420 |
if (file = fopen (name_buffer, "r"), !file) |
421 |
if (file = fopen (name_buffer, "r"), !file) |
421 |
error (EXIT_FAILURE, errno, name_buffer); |
422 |
error (EXIT_FAILURE, errno, name_buffer); |
422 |
unarchive_shar_file (name_buffer, file); |
423 |
unarchive_shar_file (name_buffer, file); |