File tree 1 file changed +11
-6
lines changed 1 file changed +11
-6
lines changed Original file line number Diff line number Diff line change @@ -298,6 +298,7 @@ main(int argc, char *argv[])
298
298
long_options , & optindex )) != -1 )
299
299
{
300
300
char * endptr ;
301
+ unsigned long optval ;
301
302
302
303
switch (c )
303
304
{
@@ -407,30 +408,34 @@ main(int argc, char *argv[])
407
408
}
408
409
break ;
409
410
case 7 :
410
- opts .startblock = strtol (optarg , & endptr , 10 );
411
- if (* endptr != '\0' )
411
+ errno = 0 ;
412
+ optval = strtoul (optarg , & endptr , 10 );
413
+ if (endptr == optarg || * endptr != '\0' || errno != 0 )
412
414
{
413
415
pg_log_error ("invalid start block" );
414
416
exit (1 );
415
417
}
416
- if (opts . startblock > MaxBlockNumber || opts . startblock < 0 )
418
+ if (optval > MaxBlockNumber )
417
419
{
418
420
pg_log_error ("start block out of bounds" );
419
421
exit (1 );
420
422
}
423
+ opts .startblock = optval ;
421
424
break ;
422
425
case 8 :
423
- opts .endblock = strtol (optarg , & endptr , 10 );
424
- if (* endptr != '\0' )
426
+ errno = 0 ;
427
+ optval = strtoul (optarg , & endptr , 10 );
428
+ if (endptr == optarg || * endptr != '\0' || errno != 0 )
425
429
{
426
430
pg_log_error ("invalid end block" );
427
431
exit (1 );
428
432
}
429
- if (opts . endblock > MaxBlockNumber || opts . endblock < 0 )
433
+ if (optval > MaxBlockNumber )
430
434
{
431
435
pg_log_error ("end block out of bounds" );
432
436
exit (1 );
433
437
}
438
+ opts .endblock = optval ;
434
439
break ;
435
440
case 9 :
436
441
opts .rootdescend = true;
You can’t perform that action at this time.
0 commit comments