diff --git a/ChangeLog b/ChangeLog index 8a6667721..9c79afe7d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2017-05-30 Werner Lemberg + + [psaux] Correctly handle sequences of multiple number signs. + + * src/psaux/psconv.c (PS_Conv_Strtol, PS_Conv_ToFixed): Return zero + if we encounter more than a single sign. + 2017-05-29 Werner Lemberg [pcf] 32bit integer overflow run-time errors (#46149). diff --git a/src/psaux/psconv.c b/src/psaux/psconv.c index b09248219..d125b0834 100644 --- a/src/psaux/psconv.c +++ b/src/psaux/psconv.c @@ -111,6 +111,10 @@ p++; if ( p == limit ) goto Bad; + + /* only a single sign is allowed */ + if ( *p == '-' || *p == '+' ) + return 0; } num_limit = 0x7FFFFFFFL / base; @@ -215,6 +219,10 @@ p++; if ( p == limit ) goto Bad; + + /* only a single sign is allowed */ + if ( *p == '-' || *p == '+' ) + return 0; } /* read the integer part */