swap recursion for iteration in skip_whitespace
and avoid a stack overflow, see https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19701
This commit is contained in:
parent
f2f2ab200d
commit
e43cba116a
@ -500,16 +500,20 @@ vips_bufis_skip_whitespace( VipsBufis *bufis )
|
|||||||
{
|
{
|
||||||
int ch;
|
int ch;
|
||||||
|
|
||||||
while( isspace( ch = VIPS_BUFIS_GETC( bufis ) ) )
|
do {
|
||||||
;
|
|
||||||
VIPS_BUFIS_UNGETC( bufis );
|
ch = VIPS_BUFIS_GETC( bufis );
|
||||||
|
|
||||||
/* # skip comments too.
|
/* # skip comments too.
|
||||||
*/
|
*/
|
||||||
if( ch == '#' &&
|
if( ch == '#' ) {
|
||||||
(!vips_bufis_get_line( bufis ) ||
|
if( !vips_bufis_get_line( bufis ) )
|
||||||
vips_bufis_skip_whitespace( bufis )) )
|
|
||||||
return( -1 );
|
return( -1 );
|
||||||
|
ch = VIPS_BUFIS_GETC( bufis );
|
||||||
|
}
|
||||||
|
} while( isspace( ch ) );
|
||||||
|
|
||||||
|
VIPS_BUFIS_UNGETC( bufis );
|
||||||
|
|
||||||
return( 0 );
|
return( 0 );
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user