diff options
author | Evangelos Foutras <evangelos@foutrelis.com> | 2022-06-04 19:49:23 +0300 |
---|---|---|
committer | Evangelos Foutras <evangelos@foutrelis.com> | 2022-06-04 19:49:23 +0300 |
commit | a4a32b5ffccf6ed9b93c02f5a977ebc5ffe3e156 (patch) | |
tree | 5c11858b1c7081b6b7b19bd3e197dea9bc1ff3ae | |
parent | f4e91e231cf158e4389f8dfc7e76a31f1bd613e4 (diff) |
pacdiff: stop if the base file extraction fails
This can fail if the tarball indicated by base_cache_tar() is incorrect
or corrupted for some reason. Also switch to bsdtar(1) for consistency.
Signed-off-by: Evangelos Foutras <evangelos@foutrelis.com>
-rw-r--r-- | src/pacdiff.sh.in | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/pacdiff.sh.in b/src/pacdiff.sh.in index 43b5e5b..7f9aa11 100644 --- a/src/pacdiff.sh.in +++ b/src/pacdiff.sh.in @@ -121,7 +121,11 @@ merge_file() { base="$(mktemp "$tempdir"/"$basename.base.XXX")" merged="$(mktemp "$tempdir"/"$basename.merged.XXX")" - tar -xOf "$base_tar" "${file#/}" >"$base" + if ! bsdtar -xqOf "$base_tar" "${file#/}" >"$base"; then + msg2 "Unable to extract the previous version of this file." + return 1 + fi + if $mergeprog "$file" "$base" "$pacfile" >"$merged"; then msg2 "Merged without conflicts." fi |