Path: blob/main/website/static/security/patches/EN-13:04/freebsd-update.patch
18096 views
Index: usr.sbin/freebsd-update/freebsd-update.sh1===================================================================2--- usr.sbin/freebsd-update/freebsd-update.sh3+++ usr.sbin/freebsd-update/freebsd-update.sh4@@ -1200,7 +1200,7 @@5# Some aliases to save space later: ${P} is a character which can6# appear in a path; ${M} is the four numeric metadata fields; and7# ${H} is a sha256 hash.8- P="[-+./:=%@_[[:alnum:]]"9+ P="[-+./:=%@_[~[:alnum:]]"10M="[0-9]+\|[0-9]+\|[0-9]+\|[0-9]+"11H="[0-9a-f]{64}"1213@@ -2814,16 +2814,24 @@1415# If we haven't already dealt with the world, deal with it.16if ! [ -f $1/worlddone ]; then17+ # Create any necessary directories first18+ grep -vE '^/boot/' $1/INDEX-NEW |19+ grep -E '^[^|]+\|d\|' > INDEX-NEW20+ install_from_index INDEX-NEW || return 121+22# Install new shared libraries next23grep -vE '^/boot/' $1/INDEX-NEW |24- grep -E '/lib/.*\.so\.[0-9]+\|' > INDEX-NEW25+ grep -vE '^[^|]+\|d\|' |26+ grep -E '^[^|]*/lib/[^|]*\.so\.[0-9]+\|' > INDEX-NEW27install_from_index INDEX-NEW || return 12829# Deal with everything else30grep -vE '^/boot/' $1/INDEX-OLD |31- grep -vE '/lib/.*\.so\.[0-9]+\|' > INDEX-OLD32+ grep -vE '^[^|]+\|d\|' |33+ grep -vE '^[^|]*/lib/[^|]*\.so\.[0-9]+\|' > INDEX-OLD34grep -vE '^/boot/' $1/INDEX-NEW |35- grep -vE '/lib/.*\.so\.[0-9]+\|' > INDEX-NEW36+ grep -vE '^[^|]+\|d\|' |37+ grep -vE '^[^|]*/lib/[^|]*\.so\.[0-9]+\|' > INDEX-NEW38install_from_index INDEX-NEW || return 139install_delete INDEX-OLD INDEX-NEW || return 14041@@ -2844,11 +2852,11 @@4243# Do we need to ask the user to portupgrade now?44grep -vE '^/boot/' $1/INDEX-NEW |45- grep -E '/lib/.*\.so\.[0-9]+\|' |46+ grep -E '^[^|]*/lib/[^|]*\.so\.[0-9]+\|' |47cut -f 1 -d '|' |48sort > newfiles49if grep -vE '^/boot/' $1/INDEX-OLD |50- grep -E '/lib/.*\.so\.[0-9]+\|' |51+ grep -E '^[^|]*/lib/[^|]*\.so\.[0-9]+\|' |52cut -f 1 -d '|' |53sort |54join -v 1 - newfiles |55@@ -2868,11 +2876,20 @@5657# Remove old shared libraries58grep -vE '^/boot/' $1/INDEX-NEW |59- grep -E '/lib/.*\.so\.[0-9]+\|' > INDEX-NEW60+ grep -vE '^[^|]+\|d\|' |61+ grep -E '^[^|]*/lib/[^|]*\.so\.[0-9]+\|' > INDEX-NEW62grep -vE '^/boot/' $1/INDEX-OLD |63- grep -E '/lib/.*\.so\.[0-9]+\|' > INDEX-OLD64+ grep -vE '^[^|]+\|d\|' |65+ grep -E '^[^|]*/lib/[^|]*\.so\.[0-9]+\|' > INDEX-OLD66install_delete INDEX-OLD INDEX-NEW || return 16768+ # Remove old directories69+ grep -vE '^/boot/' $1/INDEX-OLD |70+ grep -E '^[^|]+\|d\|' > INDEX-OLD71+ grep -vE '^/boot/' $1/INDEX-OLD |72+ grep -E '^[^|]+\|d\|' > INDEX-OLD73+ install_delete INDEX-OLD INDEX-NEW || return 174+75# Remove temporary files76rm INDEX-OLD INDEX-NEW77}787980