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