diff options
Diffstat (limited to 'include/vendor.sh')
-rw-r--r-- | include/vendor.sh | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/include/vendor.sh b/include/vendor.sh index 93acf64d..cefed456 100644 --- a/include/vendor.sh +++ b/include/vendor.sh @@ -386,6 +386,23 @@ vendor_inject() printf "WARNING! Vendorfiles *removed*. DO NOT FLASH.\n" 1>&2 \ && printf "DO NOT flash images from '%s'\n" \ "$archive" 1>&2 + + # + # catch-all error handler, for libreboot release opsec: + # + # if vendor files defined, and a hash file was missing, that means + # a nuke must succeed, if specified. if no hashfile was present, + # that means vendorfiles had been injected, so a nuke must succeed. + # this check is here in case of future bugs in lbmk's handling + # of vendorfile deletions on release archives, which absolutely + # must always be 100% reliable, so paranoia is paramount: + # + if [ "$xchanged" != "y" ] && [ "$need_files" = "y" ] && \ + [ "$nukemode" = "nuke" ] && [ "$has_hashes" != "y" ]; then + printf "FAILED NUKE: tarball '$archive', board '$board'\n" 1>&2 + $err "Unhandled vendorfile deletion: DO NOT RELEASE TO RSYNC" + fi # of course, we assume that those variables are also set right + err="$_olderr" return 0 } |