svn commit: r360665 - head/bin/ls

Conrad Meyer cem at FreeBSD.org
Tue May 5 18:06:32 UTC 2020


Author: cem
Date: Tue May  5 18:06:32 2020
New Revision: 360665
URL: https://svnweb.freebsd.org/changeset/base/360665

Log:
  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

Modified:
  head/bin/ls/ls.c

Modified: head/bin/ls/ls.c
==============================================================================
--- head/bin/ls/ls.c	Tue May  5 17:57:04 2020	(r360664)
+++ head/bin/ls/ls.c	Tue May  5 18:06:32 2020	(r360665)
@@ -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;


More information about the svn-src-head mailing list