From: Zac Medico Date: Thu, 13 Dec 2007 05:27:09 +0000 (-0000) Subject: Bug #201771 - Make unpack() detect common errors such as absolute X-Git-Tag: v2.2_pre1~192 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=8073c5d103ca766d8115c026746ce8fcb898f5e9;p=portage.git Bug #201771 - Make unpack() detect common errors such as absolute paths that start with ${DISTDIR} and die an appropriate error message. Thanks to grobian for this patch. svn path=/main/trunk/; revision=8896 --- diff --git a/bin/ebuild.sh b/bin/ebuild.sh index 50222eb6e..ff0dd78c4 100755 --- a/bin/ebuild.sh +++ b/bin/ebuild.sh @@ -313,15 +313,16 @@ unpack() { y=${x%.*} y=${y##*.} - myfail="${x} does not exist" - if [ "${x:0:2}" = "./" ] ; then + if [[ ${x} == "./"* ]] ; then srcdir="" + elif [[ ${x} == ${DISTDIR%/}/* ]] ; then + die "Arguments to unpack() cannot begin with \${DISTDIR}." + elif [[ ${x} == "/"* ]] ; then + die "Arguments to unpack() cannot be absolute" else srcdir="${DISTDIR}/" fi - [[ ${x} == ${DISTDIR}* ]] && \ - die "Arguments to unpack() should not begin with \${DISTDIR}." - [ ! -s "${srcdir}${x}" ] && die "$myfail" + [[ ! -s ${srcdir}${x} ]] && die "${x} does not exist" myfail="failure unpacking ${x}" case "${x##*.}" in