From: John Crispin Date: Wed, 15 Oct 2014 17:55:13 +0000 (+0000) Subject: default_postinst() fix wrong call of group_add X-Git-Tag: reboot~5636 X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=666659fb3159412915f828ff10c1d88673d4ef71;p=openwrt%2Fopenwrt.git default_postinst() fix wrong call of group_add [base-files] default_postinst() fix wrong call of group_add after 12bae65d07d29854204715cebc1ef1eae237fd9b group_add is always called. shell scripting can be tricky... wrong call: [ -n "$gid" ] && group_exists $name || group_add $name $gid this leads to a call of 'group_add' when $gid is emtpy, proof: root@box:~ functionA() { echo A; } root@box:~ functionB() { echo B; } root@box:~ VAR= root@box:~ [ -n "$VAR" ] && functionA || functionB B root@box:~ # functionB was called, but VAR is not filled root@box:~ VAR=filled root@box:~ [ -n "$VAR" ] && functionA || functionB A Signed-off-by: Bastian Bittorf SVN-Revision: 42926 --- diff --git a/package/base-files/files/lib/functions.sh b/package/base-files/files/lib/functions.sh index 3a5a65dcc7..d53be3edfe 100755 --- a/package/base-files/files/lib/functions.sh +++ b/package/base-files/files/lib/functions.sh @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (C) 2006-2013 OpenWrt.org +# Copyright (C) 2006-2014 OpenWrt.org # Copyright (C) 2006 Fokus Fraunhofer # Copyright (C) 2010 Vertical Communications @@ -193,7 +193,10 @@ default_postinst() { } gid=$id - [ -n "$gid" ] && group_exists $name || group_add $name $gid + [ -n "$gid" ] && { + group_exists $name || group_add $name $gid + } + [ -z "$gid" ] && { group_add_next $name gid=$?