ls(1): Fix trivial SEGV due to NULL deref in OOM path

Reported by:	Anton Rang <rang AT acm.org>
Sponsored by:	Dell EMC Isilon
This commit is contained in:
Conrad Meyer 2020-05-05 18:06:32 +00:00
parent b34f8412c5
commit 530d2d67b5
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=360665

View File

@ -838,7 +838,21 @@ display(const FTSENT *p, FTSENT *list, int options)
group = ngroup;
} else {
user = user_from_uid(sp->st_uid, 0);
/*
* user_from_uid(..., 0) only returns
* NULL in OOM conditions. We could
* format the uid here, but (1) in
* general ls(1) exits on OOM, and (2)
* there is another allocation/exit
* path directly below, which will
* likely exit anyway.
*/
if (user == NULL)
err(1, "user_from_uid");
group = group_from_gid(sp->st_gid, 0);
/* Ditto. */
if (group == NULL)
err(1, "group_from_gid");
}
if ((ulen = strlen(user)) > maxuser)
maxuser = ulen;