projects
/
openwrt
/
openwrt.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
add63dd
)
base-files: fix uid/gid auto-enumeration to avoid 16-bit limit
author
Thomas Winkler
<
[email protected]
>
Fri, 10 Nov 2023 21:48:59 +0000
(22:48 +0100)
committer
Hauke Mehrtens
<
[email protected]
>
Mon, 8 Jul 2024 19:13:26 +0000
(21:13 +0200)
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: Thomas Winkler <
[email protected]
>
(cherry picked from commit
140b48a9e93909873bee777ca5bdf49fe4f01271
)
Link:
https://github.com/openwrt/openwrt/pull/15898
Signed-off-by: Hauke Mehrtens <
[email protected]
>
package/base-files/files/lib/functions.sh
patch
|
blob
|
history
diff --git
a/package/base-files/files/lib/functions.sh
b/package/base-files/files/lib/functions.sh
index 50aed53b068b1c752b63ea7d15606d279c1f3ef4..c688ac77eee89023bb8f0757a80aac7e342661f7 100644
(file)
--- a/
package/base-files/files/lib/functions.sh
+++ b/
package/base-files/files/lib/functions.sh
@@
-371,7
+371,7
@@
group_add_next() {
return
fi
gids=$(cut -d: -f3 ${IPKG_INSTROOT}/etc/group)
- gid=
65536
+ gid=
32768
while echo "$gids" | grep -q "^$gid$"; do
gid=$((gid + 1))
done
@@
-402,7
+402,7
@@
user_add() {
local rc
[ -z "$uid" ] && {
uids=$(cut -d: -f3 ${IPKG_INSTROOT}/etc/passwd)
- uid=
65536
+ uid=
32768
while echo "$uids" | grep -q "^$uid$"; do
uid=$((uid + 1))
done