about summary refs log tree commit diff
path: root/nis/nss_nis/nis-network.c
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@suse.de>2014-05-08 16:53:01 +0200
committerAndreas Schwab <schwab@suse.de>2014-05-12 15:17:51 +0200
commit315eb1d86aea489cd6325fd1c2521dcfb4fc0e1c (patch)
tree95e476e2d0ce5885684e619ddbcb5996241f4c94 /nis/nss_nis/nis-network.c
parent91df99f7f25d7b63ba36d54e41bc33ac6901f22d (diff)
downloadglibc-315eb1d86aea489cd6325fd1c2521dcfb4fc0e1c.tar.gz
glibc-315eb1d86aea489cd6325fd1c2521dcfb4fc0e1c.tar.xz
glibc-315eb1d86aea489cd6325fd1c2521dcfb4fc0e1c.zip
Fix unbound stack use in NIS NSS module
Diffstat (limited to 'nis/nss_nis/nis-network.c')
-rw-r--r--nis/nss_nis/nis-network.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/nis/nss_nis/nis-network.c b/nis/nss_nis/nis-network.c
index f28fbdaa4f..f1b72bcd75 100644
--- a/nis/nss_nis/nis-network.c
+++ b/nis/nss_nis/nis-network.c
@@ -179,6 +179,13 @@ _nss_nis_getnetbyname_r (const char *name, struct netent *net, char *buffer,
 
   /* Convert name to lowercase.  */
   size_t namlen = strlen (name);
+  /* Limit name length to the maximum size of an RPC packet.  */
+  if (namlen > UDPMSGSIZE)
+    {
+      *errnop = ERANGE;
+      return NSS_STATUS_UNAVAIL;
+    }
+
   char name2[namlen + 1];
   size_t i;