]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
fix integer underflow in getgrnam_r and getpwnam_r
authorAlan Somers <asomers@FreeBSD.org>
Sat, 19 Sep 2020 19:08:27 +0000 (19:08 +0000)
committerAlan Somers <asomers@FreeBSD.org>
Sat, 19 Sep 2020 19:08:27 +0000 (19:08 +0000)
commit9ad1d357e0db6175124257156f035a043c2ced8c
treee8b4216a8d4e345587acd3d44732d15e9be313be
parentc6989859ae9388eeb46a24fe88f9b8d07101c710
fix integer underflow in getgrnam_r and getpwnam_r

Sometimes nscd(8) will return a 1-byte buffer for a nonexistent entry. This
triggered an integer underflow in grp_unmarshal_func, causing getgrnam_r to
return ERANGE instead of 0.

Fix the user's buffer size check, and add a correct check for a too-small
nscd buffer.

PR: 248932
Event: September 2020 Bugathon
Reviewed by: markj
MFC after: 2 weeks
Sponsored by: Axcient
Differential Revision: https://reviews.freebsd.org/D26204
lib/libc/gen/getgrent.c
lib/libc/gen/getpwent.c