From 963a228f0871ab49338cdc12583c7ac83b01de44 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 27 Nov 2016 10:54:55 +0000 Subject: [PATCH] regress: fuzzraw: read new fds from stream Signed-off-by: Ian Jackson --- regress/hfuzzraw.c.m4 | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/regress/hfuzzraw.c.m4 b/regress/hfuzzraw.c.m4 index 24aff42..1598045 100644 --- a/regress/hfuzzraw.c.m4 +++ b/regress/hfuzzraw.c.m4 @@ -216,15 +216,17 @@ int H$1(hm_args_massage($3,void)) { m4_define(`hm_rv_fd',` hm_rv_succfail if (!r) { - for (;;) { - assert(r < 1000); - if (r >= fdtab.used) - if (!adns__vbuf_append(&fdtab,"\0",1)) Tnomem(); - assert(r < fdtab.used); - if (!(fdtab.buf[r] & FDF_OPEN)) break; - r++; + int newfd; + P_READ(newfd); + if (newfd<0 || newfd>1000) Pformat("new fd out of range"); + adns__vbuf_ensure(&fdtab, newfd+1); + if (fdtab.used <= newfd) { + memset(fdtab.buf+fdtab.used, 0, newfd+1-fdtab.used); + fdtab.used= newfd+1; } - fdtab.buf[r] |= FDF_OPEN; + if (fdtab.buf[newfd]) Pformat("new fd already in use"); + fdtab.buf[newfd] |= FDF_OPEN; + r= newfd; } ') $2 -- 2.30.2