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 <bittorf@bluebottle.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@42926 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
John Crispin 2014-10-15 17:55:13 +00:00
parent 557ac83ce4
commit 9f53cd1006
1 changed files with 5 additions and 2 deletions

View File

@ -1,5 +1,5 @@
#!/bin/sh #!/bin/sh
# Copyright (C) 2006-2013 OpenWrt.org # Copyright (C) 2006-2014 OpenWrt.org
# Copyright (C) 2006 Fokus Fraunhofer <carsten.tittel@fokus.fraunhofer.de> # Copyright (C) 2006 Fokus Fraunhofer <carsten.tittel@fokus.fraunhofer.de>
# Copyright (C) 2010 Vertical Communications # Copyright (C) 2010 Vertical Communications
@ -193,7 +193,10 @@ default_postinst() {
} }
gid=$id gid=$id
[ -n "$gid" ] && group_exists $name || group_add $name $gid [ -n "$gid" ] && {
group_exists $name || group_add $name $gid
}
[ -z "$gid" ] && { [ -z "$gid" ] && {
group_add_next $name group_add_next $name
gid=$? gid=$?