base-files: fix getting gid from group_add_next
Shell function return code only has range [0, 255]. Other values will be truncated, e.g. return 65536 will have the same effect as return 0 While at it, drop other "return $rc" where rc will almost always take value 0 and whose value current callers actually do not check Fixes FS#988 Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
This commit is contained in:
parent
a6e9d146f2
commit
b2aa820b48
2 changed files with 7 additions and 8 deletions
|
@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk
|
||||||
include $(INCLUDE_DIR)/version.mk
|
include $(INCLUDE_DIR)/version.mk
|
||||||
|
|
||||||
PKG_NAME:=base-files
|
PKG_NAME:=base-files
|
||||||
PKG_RELEASE:=177
|
PKG_RELEASE:=178
|
||||||
PKG_FLAGS:=nonshared
|
PKG_FLAGS:=nonshared
|
||||||
|
|
||||||
PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
|
PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
|
||||||
|
|
|
@ -202,7 +202,7 @@ add_group_and_user() {
|
||||||
if [ -n "$gname" ] && [ -n "$gid" ]; then
|
if [ -n "$gname" ] && [ -n "$gid" ]; then
|
||||||
group_exists "$gname" || group_add "$gname" "$gid"
|
group_exists "$gname" || group_add "$gname" "$gid"
|
||||||
elif [ -n "$gname" ]; then
|
elif [ -n "$gname" ]; then
|
||||||
group_add_next "$gname"; gid=$?
|
gid="$(group_add_next "$gname")"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$uname" ]; then
|
if [ -n "$uname" ]; then
|
||||||
|
@ -296,9 +296,7 @@ group_add() {
|
||||||
[ -f "${IPKG_INSTROOT}/etc/group" ] || return 1
|
[ -f "${IPKG_INSTROOT}/etc/group" ] || return 1
|
||||||
[ -n "$IPKG_INSTROOT" ] || lock /var/lock/group
|
[ -n "$IPKG_INSTROOT" ] || lock /var/lock/group
|
||||||
echo "${name}:x:${gid}:" >> ${IPKG_INSTROOT}/etc/group
|
echo "${name}:x:${gid}:" >> ${IPKG_INSTROOT}/etc/group
|
||||||
rc=$?
|
|
||||||
[ -n "$IPKG_INSTROOT" ] || lock -u /var/lock/group
|
[ -n "$IPKG_INSTROOT" ] || lock -u /var/lock/group
|
||||||
return $rc
|
|
||||||
}
|
}
|
||||||
|
|
||||||
group_exists() {
|
group_exists() {
|
||||||
|
@ -308,14 +306,17 @@ group_exists() {
|
||||||
group_add_next() {
|
group_add_next() {
|
||||||
local gid gids
|
local gid gids
|
||||||
gid=$(grep -s "^${1}:" ${IPKG_INSTROOT}/etc/group | cut -d: -f3)
|
gid=$(grep -s "^${1}:" ${IPKG_INSTROOT}/etc/group | cut -d: -f3)
|
||||||
[ -n "$gid" ] && return $gid
|
if [ -n "$gid" ]; then
|
||||||
|
echo $gid
|
||||||
|
return
|
||||||
|
fi
|
||||||
gids=$(cat ${IPKG_INSTROOT}/etc/group | cut -d: -f3)
|
gids=$(cat ${IPKG_INSTROOT}/etc/group | cut -d: -f3)
|
||||||
gid=65536
|
gid=65536
|
||||||
while [ -n "$(echo "$gids" | grep "^$gid$")" ] ; do
|
while [ -n "$(echo "$gids" | grep "^$gid$")" ] ; do
|
||||||
gid=$((gid + 1))
|
gid=$((gid + 1))
|
||||||
done
|
done
|
||||||
group_add $1 $gid
|
group_add $1 $gid
|
||||||
return $gid
|
echo $gid
|
||||||
}
|
}
|
||||||
|
|
||||||
group_add_user() {
|
group_add_user() {
|
||||||
|
@ -348,9 +349,7 @@ user_add() {
|
||||||
[ -n "$IPKG_INSTROOT" ] || lock /var/lock/passwd
|
[ -n "$IPKG_INSTROOT" ] || lock /var/lock/passwd
|
||||||
echo "${name}:x:${uid}:${gid}:${desc}:${home}:${shell}" >> ${IPKG_INSTROOT}/etc/passwd
|
echo "${name}:x:${uid}:${gid}:${desc}:${home}:${shell}" >> ${IPKG_INSTROOT}/etc/passwd
|
||||||
echo "${name}:x:0:0:99999:7:::" >> ${IPKG_INSTROOT}/etc/shadow
|
echo "${name}:x:0:0:99999:7:::" >> ${IPKG_INSTROOT}/etc/shadow
|
||||||
rc=$?
|
|
||||||
[ -n "$IPKG_INSTROOT" ] || lock -u /var/lock/passwd
|
[ -n "$IPKG_INSTROOT" ] || lock -u /var/lock/passwd
|
||||||
return $rc
|
|
||||||
}
|
}
|
||||||
|
|
||||||
user_exists() {
|
user_exists() {
|
||||||
|
|
Loading…
Reference in a new issue