Commit 3aaedb12086a77c5ea7564eb3b5b2f02f788fe61

Guillem Jover 2019-06-15T14:33:32

nlist: Check whether the nl argument is not NULL This prevents programming errors. Reported-by: Daniel Hodson <daniel@elttam.com.au> Based-on-patch-by: Daniel Hodson <daniel@elttam.com.au> Signed-off-by: Guillem Jover <guillem@hadrons.org>

diff --git a/man/nlist.3bsd b/man/nlist.3bsd
index 7dd2377..beb32a3 100644
--- a/man/nlist.3bsd
+++ b/man/nlist.3bsd
@@ -72,7 +72,10 @@ The last entry in the list is always
 The number of invalid entries is returned if successful; otherwise,
 if the file
 .Fa filename
-does not exist or is not executable, the returned value is \-1.
+does not exist or is not executable,
+or the nl pointer is
+.Dv NULL ,
+the returned value is \-1.
 .Sh SEE ALSO
 .Xr elf 5
 .Sh HISTORY
diff --git a/src/nlist.c b/src/nlist.c
index 0932f59..776d315 100644
--- a/src/nlist.c
+++ b/src/nlist.c
@@ -258,6 +258,10 @@ nlist(const char *name, struct nlist *list)
 {
 	int fd, n;
 
+	if (list == NULL) {
+		errno = EINVAL;
+		return (-1);
+	}
 	fd = open(name, O_RDONLY, 0);
 	if (fd < 0)
 		return (-1);