diff options
author | John Crispin <blogic@openwrt.org> | 2014-10-15 17:55:13 +0000 |
---|---|---|
committer | John Crispin <blogic@openwrt.org> | 2014-10-15 17:55:13 +0000 |
commit | 9f53cd1006265a5062138c52d143c1d0ed5d4b05 (patch) | |
tree | dcac6fd07903982965c665eee2aed319cf41b306 /package/base-files/files/lib | |
parent | 557ac83ce44cd533406d130b0d5816d90b915795 (diff) | |
download | master-187ad058-9f53cd1006265a5062138c52d143c1d0ed5d4b05.tar.gz master-187ad058-9f53cd1006265a5062138c52d143c1d0ed5d4b05.tar.bz2 master-187ad058-9f53cd1006265a5062138c52d143c1d0ed5d4b05.zip |
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
Diffstat (limited to 'package/base-files/files/lib')
-rwxr-xr-x | package/base-files/files/lib/functions.sh | 7 |
1 files changed, 5 insertions, 2 deletions
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 <carsten.tittel@fokus.fraunhofer.de> # 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=$? |