@@ -371,14 +371,15 @@ void afl_setup(void) {
371
371
int have_names = 0 ;
372
372
if (getenv ("AFL_QEMU_INST_RANGES" )) {
373
373
char * str = getenv ("AFL_QEMU_INST_RANGES" );
374
- char * saveptr1 , * saveptr2 = NULL ;
374
+ char * saveptr1 , * saveptr2 = NULL , save_pt1 = NULL ;
375
375
char * pt1 , * pt2 , * pt3 = NULL ;
376
376
377
377
while (1 ) {
378
378
379
379
pt1 = strtok_r (str , "," , & saveptr1 );
380
380
if (pt1 == NULL ) break ;
381
381
str = NULL ;
382
+ save_pt1 = strdup (pt1 );
382
383
383
384
pt2 = strtok_r (pt1 , "-" , & saveptr2 );
384
385
pt3 = strtok_r (NULL , "-" , & saveptr2 );
@@ -390,17 +391,18 @@ void afl_setup(void) {
390
391
have_names = 1 ;
391
392
n -> start = (target_ulong )- 1 ;
392
393
n -> end = 0 ;
393
- n -> name = strdup ( pt1 ) ;
394
+ n -> name = save_pt1 ;
394
395
} else {
395
396
n -> start = strtoull (pt2 , NULL , 16 );
396
397
n -> end = strtoull (pt3 , NULL , 16 );
397
398
if (n -> start && n -> end ) {
398
399
n -> name = NULL ;
400
+ free (save_pt1 );
399
401
} else {
400
402
have_names = 1 ;
401
403
n -> start = (target_ulong )- 1 ;
402
404
n -> end = 0 ;
403
- n -> name = strdup ( pt1 ) ;
405
+ n -> name = save_pt1 ;
404
406
}
405
407
}
406
408
@@ -411,14 +413,15 @@ void afl_setup(void) {
411
413
412
414
if (getenv ("AFL_QEMU_EXCLUDE_RANGES" )) {
413
415
char * str = getenv ("AFL_QEMU_EXCLUDE_RANGES" );
414
- char * saveptr1 , * saveptr2 = NULL ;
416
+ char * saveptr1 , * saveptr2 = NULL , save_pt1 ;
415
417
char * pt1 , * pt2 , * pt3 = NULL ;
416
418
417
419
while (1 ) {
418
420
419
421
pt1 = strtok_r (str , "," , & saveptr1 );
420
422
if (pt1 == NULL ) break ;
421
423
str = NULL ;
424
+ save_pt1 = strdup (pt1 );
422
425
423
426
pt2 = strtok_r (pt1 , "-" , & saveptr2 );
424
427
pt3 = strtok_r (NULL , "-" , & saveptr2 );
@@ -431,17 +434,18 @@ void afl_setup(void) {
431
434
have_names = 1 ;
432
435
n -> start = (target_ulong )- 1 ;
433
436
n -> end = 0 ;
434
- n -> name = strdup ( pt1 ) ;
437
+ n -> name = save_pt1 ;
435
438
} else {
436
439
n -> start = strtoull (pt2 , NULL , 16 );
437
440
n -> end = strtoull (pt3 , NULL , 16 );
438
441
if (n -> start && n -> end ) {
439
442
n -> name = NULL ;
443
+ free (save_pt1 );
440
444
} else {
441
445
have_names = 1 ;
442
446
n -> start = (target_ulong )- 1 ;
443
447
n -> end = 0 ;
444
- n -> name = strdup ( pt1 ) ;
448
+ n -> name = save_pt1 ;
445
449
}
446
450
}
447
451
0 commit comments