diff options
Diffstat (limited to 'archival/unzip.c')
-rw-r--r-- | archival/unzip.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/archival/unzip.c b/archival/unzip.c index 8ed9ae7..6041660 100644 --- a/archival/unzip.c +++ b/archival/unzip.c @@ -368,9 +368,15 @@ static void unzip_extract_symlink(zip_header_t *zip, const char *dst_fn) target[xstate.mem_output_size] = '\0'; #endif } + if (!unsafe_symlink_target(target)) { //TODO: libbb candidate - if (symlink(target, dst_fn)) - bb_perror_msg_and_die("can't create symlink '%s'", dst_fn); + if (symlink(target, dst_fn)) { + /* shared message */ + bb_perror_msg_and_die("can't create %slink '%s' to '%s'", + "sym", dst_fn, target + ); + } + } free(target); } #endif |