X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=regress%2Fhfuzzraw.c.m4;h=b2e82fd01663c3fd6f700b9242461204fa96d731;hb=fc440c64836370db9d8cb1a25f09c9df0786f865;hp=0ed71a2c326232cba12bb4e72fdac6b58ea575ec;hpb=a469269abe5aefc86ca0ef6344eb1359985759f5;p=adns.git diff --git a/regress/hfuzzraw.c.m4 b/regress/hfuzzraw.c.m4 index 0ed71a2..b2e82fd 100644 --- a/regress/hfuzzraw.c.m4 +++ b/regress/hfuzzraw.c.m4 @@ -74,7 +74,10 @@ void Tensuresetup(void) { const char *traceprintstr= getenv("ADNS_TEST_FUZZRAW_TRACEPRINT"); if (traceprintstr) { traceprint= atoi(traceprintstr); - traceout= fdopen(2,"w"); if (!traceout) Tfailed("fdopen for traceout"); + int tracefd= dup(2); + if (tracefd<0) Tfailed("dup for tracefd"); + traceout= fdopen(tracefd,"w"); + if (!traceout) Tfailed("fdopen for traceout"); } } @@ -91,6 +94,7 @@ static void Pformat(const char *what) { } extern void Tshutdown(void) { + if (!Tinputfile) return; int c= fgetc(Tinputfile); if (c!=EOF) Pformat("unwanted additional syscall reply data"); if (ferror(Tinputfile)) Tfailed("read test log input (at end)"); @@ -304,6 +308,10 @@ int H$1(hm_args_massage($3,void)) { r= newfd; } ') + m4_define(`hm_rv_wlen',` + hm_rv_any + if (r>$'`1) Pformat("write return value too large"); + ') $2 hm_create_nothing