chiark / gitweb /
regress: Do not crash if fd set fd out of range
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 23 Nov 2016 17:26:09 +0000 (17:26 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 11 Jun 2020 15:13:02 +0000 (16:13 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
regress/hplayback.c.m4

index 312a04a159b064b2fccf06265ef60ace94126639..481d37bfaa41ab273ace85871b09dcc474db83ea 100644 (file)
@@ -147,7 +147,8 @@ static void P_updatetime(void) {
 }
 
 static void Pfdset(fd_set *set, int max) {
-  int r, c;
+  int c;
+  unsigned long ul;
   char *ep;
 
   if (!set) {
@@ -159,10 +160,10 @@ static void Pfdset(fd_set *set, int max) {
   FD_ZERO(set);
   if (vb2.buf[vb2.used] == hm_squote]hm_squote) { vb2.used++; return; }
   for (;;) {
-    r= strtoul(vb2.buf+vb2.used,&ep,10);
-    if (r>=max) Psyntax("fd set member > max");
+    ul= strtoul(vb2.buf+vb2.used,&ep,10);
+    if (ul>=max) Psyntax("fd set member > max");
     if (ep == (char*)vb2.buf+vb2.used) Psyntax("empty entry in fd set");
-    FD_SET(r,set);
+    FD_SET(ul,set);
     vb2.used= ep - (char*)vb2.buf;
     c= vb2.buf[vb2.used++];
     if (c == hm_squote]hm_squote) break;