From: Ian Jackson Date: Wed, 23 Nov 2016 17:32:09 +0000 (+0000) Subject: regress: hplayback: Do not tolerate hm_rv_any values out of range X-Git-Tag: adns-1.6.0~81 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=6556f9ecad1757e7a2ca9dba6afc7a0374ea7c0e;p=adns.git regress: hplayback: Do not tolerate hm_rv_any values out of range Signed-off-by: Ian Jackson --- diff --git a/regress/hplayback.c.m4 b/regress/hplayback.c.m4 index 481d37b..916f97d 100644 --- a/regress/hplayback.c.m4 +++ b/regress/hplayback.c.m4 @@ -37,6 +37,8 @@ m4_include(hmacros.i4) #include #include +#include + #include "harness.h" @@ -348,8 +350,11 @@ int H$1(hm_args_massage($3,void)) { m4_define(`hm_rv_len',`hm_rv_succfail') m4_define(`hm_rv_must',`hm_rv_succfail') m4_define(`hm_rv_any',` - r= strtoul(vb2.buf+hm_r_offset,&ep,10); - if (*ep && *ep!=hm_squote hm_squote) Psyntax("return value not E* or positive number"); + unsigned long ul_r= strtoul(vb2.buf+hm_r_offset,&ep,10); + if (ul_r < 0 || ul_r > INT_MAX || + (*ep && *ep!=hm_squote hm_squote)) + Psyntax("return value not E* or positive number"); + r= ul_r; vb2.used= ep - (char*)vb2.buf; ') m4_define(`hm_rv_fd',`hm_rv_any')