mirror of
https://gitlab.alpinelinux.org/alpine/abuild.git
synced 2025-03-11 06:37:31 +00:00
abuild: fix check of maintainer address
Also disallow leading and trailing spaces/quotes. fixes https://gitlab.alpinelinux.org/alpine/abuild/-/issues/10080
This commit is contained in:
parent
37e150738e
commit
ee13f777d5
@ -969,8 +969,6 @@ git_last_commit_epoch() {
|
|||||||
get_maintainer() {
|
get_maintainer() {
|
||||||
if [ -z "$maintainer" ]; then
|
if [ -z "$maintainer" ]; then
|
||||||
maintainer=$(awk -F': ' '/# *Maintainer/ {print $2}' "$APKBUILD")
|
maintainer=$(awk -F': ' '/# *Maintainer/ {print $2}' "$APKBUILD")
|
||||||
# remove surrounding whitespace
|
|
||||||
maintainer=$(echo "$maintainer" | xargs)
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -981,8 +979,10 @@ check_maintainer() {
|
|||||||
else
|
else
|
||||||
# try to check for a valid rfc822 address
|
# try to check for a valid rfc822 address
|
||||||
case "$maintainer" in
|
case "$maintainer" in
|
||||||
*[A-Za-z0-9]*\ \<*@*.*\>) ;;
|
" "*|*" ") error "'$maintainer' has leading or trailing space"; return 1 ;;
|
||||||
*) return 1 ;;
|
\"*|*\") error "'$maintainer' has leading or trailing quote"; return 1 ;;
|
||||||
|
*\ \<*@*.*\>) ;;
|
||||||
|
*) error "'$maintainer' is not a valid rfc822 address"; return 1 ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,8 @@ init_tests \
|
|||||||
abuild_package_size_nonzero \
|
abuild_package_size_nonzero \
|
||||||
abuild_amove \
|
abuild_amove \
|
||||||
abuild_doc \
|
abuild_doc \
|
||||||
abuild_dev
|
abuild_dev \
|
||||||
|
abuild_check_maintainer
|
||||||
|
|
||||||
export ABUILD_SHAREDIR=$(atf_get_srcdir)/..
|
export ABUILD_SHAREDIR=$(atf_get_srcdir)/..
|
||||||
export ABUILD_CONF=/dev/null
|
export ABUILD_CONF=/dev/null
|
||||||
@ -673,3 +674,24 @@ abuild_dev_body() {
|
|||||||
done
|
done
|
||||||
test -L pkg/foo-dev/usr/lib/libfoo.so || atf_fail "libfoo.so failed"
|
test -L pkg/foo-dev/usr/lib/libfoo.so || atf_fail "libfoo.so failed"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
abuild_check_maintainer_body() {
|
||||||
|
mkdir -p foo && cd foo
|
||||||
|
for m in "Test User 123 <123example.com>" \
|
||||||
|
"foo" \
|
||||||
|
"user@example.com" \
|
||||||
|
" Leading Space <n@example.com>" \
|
||||||
|
"Trailing Space <n@example.com> " \
|
||||||
|
"Foo<u@example.com>" \
|
||||||
|
'"Quotes <u@example.com>"'; do
|
||||||
|
printf "# Maintainer: %s\n%s\n" "$m" "pkgname=foo" > APKBUILD
|
||||||
|
atf_check -s not-exit:0 \
|
||||||
|
-e match:"ERROR:" \
|
||||||
|
abuild check_maintainer
|
||||||
|
done
|
||||||
|
|
||||||
|
for m in "Test User <123@example.com>" "Foo O'Brian <n@example.com>" "Łukasz Something <s@example.com>"; do
|
||||||
|
printf "# Maintainer: %s\n%s\n" "$m" "pkgname=foo" > APKBUILD
|
||||||
|
atf_check abuild check_maintainer
|
||||||
|
done
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user