diff options
author | Denis Vlasenko | 2008-06-25 20:54:45 +0000 |
---|---|---|
committer | Denis Vlasenko | 2008-06-25 20:54:45 +0000 |
commit | a04cc47f1c53c34e81a7271d687d8b68d0489892 (patch) | |
tree | 1325f2bb5ae82f1417bc3a9e5682adc1cee71c38 /archival/bbunzip.c | |
parent | 6e18f9a6ea8e0c6f00eb8276744bdc3889b64c76 (diff) | |
download | busybox-a04cc47f1c53c34e81a7271d687d8b68d0489892.zip busybox-a04cc47f1c53c34e81a7271d687d8b68d0489892.tar.gz |
b[un]zip2, g[un]zip: unlink destination if -f is given. Closes 3854
Diffstat (limited to 'archival/bbunzip.c')
-rw-r--r-- | archival/bbunzip.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/archival/bbunzip.c b/archival/bbunzip.c index 90d39f6..09a4eb9 100644 --- a/archival/bbunzip.c +++ b/archival/bbunzip.c @@ -73,6 +73,12 @@ int bbunpack(char **argv, bb_error_msg("%s: unknown suffix - ignored", filename); goto err; } + + /* -f: overwrite existing output files */ + if (option_mask32 & OPT_FORCE) { + unlink(new_name); + } + /* O_EXCL: "real" bunzip2 doesn't overwrite files */ /* GNU gunzip does not bail out, but goes to next file */ if (open_to_or_warn(STDOUT_FILENO, new_name, O_WRONLY | O_CREAT | O_EXCL, |