Ensure that we always open only files that is named by explicitly
using shell redirections instead of having gzip(1) to decide what file to open. Issue reported in the "non-cryptanalytic attacks against freebsd update components" anonymous gist. Reviewed by: allanjude, emaste MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D7653
This commit is contained in:
parent
8f2b5a5469
commit
337b148e02
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=305469
@ -651,7 +651,7 @@ fetch_index_sanity() {
|
||||
# Verify a list of files
|
||||
fetch_snapshot_verify() {
|
||||
while read F; do
|
||||
if [ "`gunzip -c snap/${F} | ${SHA256} -q`" != ${F} ]; then
|
||||
if [ "`gunzip -c < snap/${F}.gz | ${SHA256} -q`" != ${F} ]; then
|
||||
echo "snapshot corrupt."
|
||||
return 1
|
||||
fi
|
||||
@ -686,7 +686,7 @@ fetch_snapshot() {
|
||||
cut -f 2 -d '|' tINDEX.new | fetch_snapshot_verify || return 1
|
||||
# Extract the index
|
||||
rm -f INDEX.new
|
||||
gunzip -c snap/`look INDEX tINDEX.new |
|
||||
gunzip -c < snap/`look INDEX tINDEX.new |
|
||||
cut -f 2 -d '|'`.gz > INDEX.new
|
||||
fetch_index_sanity || return 1
|
||||
# Verify the snapshot contents
|
||||
@ -782,7 +782,7 @@ fetch_update() {
|
||||
|
||||
# Extract the index
|
||||
echo -n "Extracting index... " 1>${QUIETREDIR}
|
||||
gunzip -c files/`look INDEX tINDEX.new |
|
||||
gunzip -c < files/`look INDEX tINDEX.new |
|
||||
cut -f 2 -d '|'`.gz > INDEX.new
|
||||
fetch_index_sanity || return 1
|
||||
|
||||
@ -902,7 +902,7 @@ extract_make_index() {
|
||||
echo -n "$1 not provided by portsnap server; "
|
||||
echo "$2 not being generated."
|
||||
else
|
||||
gunzip -c "${WORKDIR}/files/`look $1 ${WORKDIR}/tINDEX |
|
||||
gunzip -c < "${WORKDIR}/files/`look $1 ${WORKDIR}/tINDEX |
|
||||
cut -f 2 -d '|'`.gz" |
|
||||
cat - ${LOCALDESC} |
|
||||
${MKINDEX} /dev/stdin > ${PORTSDIR}/$2
|
||||
|
Loading…
Reference in New Issue
Block a user