Blame SOURCES/libnfsidmap-0.2-negativerets.patch

a72e7a
diff -up libnfsidmap-0.25/nss.c.save libnfsidmap-0.25/nss.c
a72e7a
--- libnfsidmap-0.25/nss.c.save	2016-08-17 14:09:18.797550853 -0400
a72e7a
+++ libnfsidmap-0.25/nss.c	2016-08-17 14:09:39.021905256 -0400
a72e7a
@@ -44,6 +44,7 @@
a72e7a
 #include <netdb.h>
a72e7a
 #include <err.h>
a72e7a
 #include <grp.h>
a72e7a
+#include <limits.h>
a72e7a
 #include "nfsidmap.h"
a72e7a
 #include "nfsidmap_internal.h"
a72e7a
 #include "cfg.h"
a72e7a
@@ -171,6 +172,9 @@ static struct passwd *nss_getpwnam(const
a72e7a
 	char *localname;
a72e7a
 	int err = ENOMEM;
a72e7a
 
a72e7a
+	if (buflen > UINT_MAX)
a72e7a
+		goto err;
a72e7a
+
a72e7a
 	buf = malloc(sizeof(*buf) + buflen);
a72e7a
 	if (buf == NULL)
a72e7a
 		goto err;
a72e7a
@@ -236,8 +240,11 @@ static int nss_name_to_gid(char *name, g
a72e7a
 	if (!localname)
a72e7a
 		goto out;
a72e7a
 
a72e7a
+	err = -ENOMEM;
a72e7a
+	if (buflen > UINT_MAX)
a72e7a
+		goto out;
a72e7a
+
a72e7a
 	do {
a72e7a
-		err = -ENOMEM;
a72e7a
 		buf = malloc(buflen);
a72e7a
 		if (!buf)
a72e7a
 			goto out_name;