Skip to content
Snippets Groups Projects
Commit ccac75a3 authored by Thomas Winkler's avatar Thomas Winkler Committed by Hauke Mehrtens
Browse files

base-files: fix uid/gid auto-enumeration to avoid 16-bit limit


uid/gid range should be limited to 16bit unsigned integer range to
avoid "wraparound" issues with permissions where jffs2
is employed for storage and chown 65536 (first auto-created user)
becomes equivalent to chown 0

Fixes: #13927

Signed-off-by: default avatarThomas Winkler <tewinkler86@gmail.com>
(cherry picked from commit 140b48a9e93909873bee777ca5bdf49fe4f01271)
Link: https://github.com/openwrt/openwrt/pull/15898


Signed-off-by: default avatarHauke Mehrtens <hauke@hauke-m.de>
parent add63dd5
No related branches found
No related tags found
1 merge request!433Merge OpenWrt tag 'v23.05.4' into devel
...@@ -371,7 +371,7 @@ group_add_next() { ...@@ -371,7 +371,7 @@ group_add_next() {
return return
fi fi
gids=$(cut -d: -f3 ${IPKG_INSTROOT}/etc/group) gids=$(cut -d: -f3 ${IPKG_INSTROOT}/etc/group)
gid=65536 gid=32768
while echo "$gids" | grep -q "^$gid$"; do while echo "$gids" | grep -q "^$gid$"; do
gid=$((gid + 1)) gid=$((gid + 1))
done done
...@@ -402,7 +402,7 @@ user_add() { ...@@ -402,7 +402,7 @@ user_add() {
local rc local rc
[ -z "$uid" ] && { [ -z "$uid" ] && {
uids=$(cut -d: -f3 ${IPKG_INSTROOT}/etc/passwd) uids=$(cut -d: -f3 ${IPKG_INSTROOT}/etc/passwd)
uid=65536 uid=32768
while echo "$uids" | grep -q "^$uid$"; do while echo "$uids" | grep -q "^$uid$"; do
uid=$((uid + 1)) uid=$((uid + 1))
done done
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment