diff options
-rwxr-xr-x | kiss | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -983,6 +983,12 @@ pkg_install() { [ -f "$tar_dir/$pkg_name/$pkg_db/$pkg_name/manifest" ] || die "'${tar_file##*/}' is not a valid KISS package" + # Ensure that the tarball's manifest is correct by checking that + # each file and directory inside of it actually exists. + while read -r line; do [ -e "$tar_dir/$pkg_name/$line" ] || + die "File $line missing from tarball but mentioned in manifest" + done < "$tar_dir/$pkg_name/$pkg_db/$pkg_name/manifest" + # Make sure that all run-time dependencies are installed prior to # installing the package. [ -f "$tar_dir/$pkg_name/$pkg_db/$pkg_name/depends" ] && |