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
@ -498,18 +498,22 @@ vips_bufis_get_non_whitespace( VipsBufis *bufis )
|
||||
int
|
||||
vips_bufis_skip_whitespace( VipsBufis *bufis )
|
||||
{
|
||||
int ch;
|
||||
int ch;
|
||||
|
||||
do {
|
||||
|
||||
ch = VIPS_BUFIS_GETC( bufis );
|
||||
|
||||
/* # skip comments too.
|
||||
*/
|
||||
if( ch == '#' ) {
|
||||
if( !vips_bufis_get_line( bufis ) )
|
||||
return( -1 );
|
||||
ch = VIPS_BUFIS_GETC( bufis );
|
||||
}
|
||||
} while( isspace( ch ) );
|
||||
|
||||
while( isspace( ch = VIPS_BUFIS_GETC( bufis ) ) )
|
||||
;
|
||||
VIPS_BUFIS_UNGETC( bufis );
|
||||
|
||||
/* # skip comments too.
|
||||
*/
|
||||
if( ch == '#' &&
|
||||
(!vips_bufis_get_line( bufis ) ||
|
||||
vips_bufis_skip_whitespace( bufis )) )
|
||||
return( -1 );
|
||||
|
||||
return( 0 );
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user