HomeFreeBSD

quot: Fix benign buffer overflow

Description

quot: Fix benign buffer overflow

If it encounters an inode whose owner does not have a pw entry, quot
allocates a 7-byte buffer (8 in practice, since that is the minimum
allocation size) and uses it to store the numeric uid preceded by a
hash character. This will overflow the allocated buffer if the UID
exceeds 6 decimal digits. Avoid this by using asprintf() instead.

While here, simplify the common case as well using strdup().

Reported by: Igor Gabriel Sousa e Souza <igor@bsdtrust.com>
MFC after: 3 days
Reviewed by: obiwac, emaste
Differential Revision: https://reviews.freebsd.org/D53129

(cherry picked from commit 5854d1cbab1073d78519e7ad9a6eb5726341d587)

Details

Provenance
desAuthored on Fri, Oct 17, 11:54 AM
Reviewer
obiwac
Differential Revision
D53129: quot: Fix benign buffer overflow
Parents
rG4ab2e9d4feec: realpath: Belatedly document POSIX conformance
Branches
Unknown
Tags
Unknown