chiark / gitweb /
regress: fuzzraw: Fix select Pfdset
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 27 Nov 2016 21:32:01 +0000 (21:32 +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 18cbd0f2dcdbee54a45afdba2b0f9eef99776962..695b9a23ad48cba92177154fcfaf5d8152460d00 100644 (file)
@@ -195,16 +195,19 @@ static void Pfdset(fd_set *set, int max) {
   
   if (vb2.buf[vb2.used++] != hm_squote[hm_squote) Psyntax("fd set start not [");
   FD_ZERO(set);
-  if (vb2.buf[vb2.used] == hm_squote]hm_squote) { vb2.used++; return; }
-  for (;;) {
-    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(ul,set);
-    vb2.used= ep - (char*)vb2.buf;
-    c= vb2.buf[vb2.used++];
-    if (c == hm_squote]hm_squote) break;
-    if (c != hm_squote,hm_squote) Psyntax("fd set separator not ,");
+  if (vb2.buf[vb2.used] == hm_squote]hm_squote) {
+    vb2.used++;
+  } else {
+    for (;;) {
+      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(ul,set);
+      vb2.used= ep - (char*)vb2.buf;
+      c= vb2.buf[vb2.used++];
+      if (c == hm_squote]hm_squote) break;
+      if (c != hm_squote,hm_squote) Psyntax("fd set separator not ,");
+    }
   }
 
   uint16_t accum;