[pacman-dev] [PATCH 1/1] lint_pkgbuild/pkgname: pkgname is not allowed to be empty

Allan McRae allan at archlinux.org
Mon Oct 10 00:32:45 UTC 2016


On 09/10/16 23:09, Allan McRae wrote:
> On 08/10/16 22:11, Rikard Falkeborn wrote:
>> 2016-10-04 10:21 GMT+02:00 Christian Hesse <list at eworm.de>:
>>
>>> From: Christian Hesse <mail at eworm.de>
>>>
>>> We checked for empty array elements, but did not catch empty array. Add
>>> a check for that case as well.
>>>
>>> Signed-off-by: Christian Hesse <mail at eworm.de>
>>> ---
>>>  scripts/libmakepkg/lint_pkgbuild/pkgname.sh.in | 5 +++++
>>>  1 file changed, 5 insertions(+)
>>>
>>> diff --git a/scripts/libmakepkg/lint_pkgbuild/pkgname.sh.in
>>> b/scripts/libmakepkg/lint_pkgbuild/pkgname.sh.in
>>> index a044082..2696afa 100644
>>> --- a/scripts/libmakepkg/lint_pkgbuild/pkgname.sh.in
>>> +++ b/scripts/libmakepkg/lint_pkgbuild/pkgname.sh.in
>>> @@ -32,6 +32,11 @@ lint_pkgbuild_functions+=('lint_pkgname')
>>>  lint_pkgname() {
>>>         local ret=0 i
>>>
>>> +       if [[ -z "${pkgname[0]}" ]]; then
>>> +               error "$(gettext "%s is not allowed to be empty.")"
>>> "pkgname"
>>> +               ret=1
>>> +       fi
>>> +
>>>         for i in "${pkgname[@]}"; do
>>>                 if [[ -z $i ]]; then
>>>                         error "$(gettext "%s is not allowed to be
>>> empty.")" "pkgname"
>>> --
>>> 2.10.0
>>>
>>
>> If pkgname="", this will cause the error message to be printed twice (once
>> in the added if-statement and once in the loop). Should we just return
>> immediately instead of setting ret=1?
>>
> 
> Changed the test to:
> 
> 	if (( ${#pkgname[@]} == 0 )) ; then
> 
> then it catches and prints one message for:
> 
> pkgname=
> pkgname=''
> pkgname=()
> pkgname=('')
> 

And based on discussion on IRC, further changed to:

	if [[ -z ${pkgname[@]} ]]; then
		error "$(gettext "%s is not allowed to be empty.")" "pkgname"
		return 1
	fi


This also detects when pkgname is not defined.

A


More information about the pacman-dev mailing list