@@ -26,6 +26,7 @@ extern void regprint(my_regex_t *r, FILE *d);
26
26
27
27
28
28
#ifdef _WIN32
29
+ #define snprintf _snprintf
29
30
char * optarg = "" ;
30
31
int optind = 1 ;
31
32
int opterr ;
@@ -501,7 +502,8 @@ char *should;
501
502
(sub .rm_so != -1 && sub .rm_eo == -1 ) ||
502
503
(sub .rm_so != -1 && sub .rm_so < 0 ) ||
503
504
(sub .rm_eo != -1 && sub .rm_eo < 0 ) ) {
504
- sprintf (grump , "start %ld end %ld" , (long )sub .rm_so ,
505
+ snprintf (grump , sizeof (grump ),
506
+ "start %ld end %ld" , (long )sub .rm_so ,
505
507
(long )sub .rm_eo );
506
508
return (grump );
507
509
}
@@ -514,7 +516,8 @@ char *should;
514
516
515
517
/* check for in range */
516
518
if ((int ) sub .rm_eo > (int ) strlen (str )) {
517
- sprintf (grump , "start %ld end %ld, past end of string" ,
519
+ snprintf (grump , sizeof (grump ),
520
+ "start %ld end %ld, past end of string" ,
518
521
(long )sub .rm_so , (long )sub .rm_eo );
519
522
return (grump );
520
523
}
@@ -525,13 +528,13 @@ char *should;
525
528
526
529
/* check for not supposed to match */
527
530
if (should == NULL ) {
528
- sprintf (grump , "matched `%.*s'" , (int )len , p );
531
+ snprintf (grump , sizeof ( grump ) , "matched `%.*s'" , (int )len , p );
529
532
return (grump );
530
533
}
531
534
532
535
/* check for wrong match */
533
536
if (len != shlen || strncmp (p , should , shlen ) != 0 ) {
534
- sprintf (grump , "matched `%.*s' instead" , (int )len , p );
537
+ snprintf (grump , sizeof ( grump ) , "matched `%.*s' instead" , (int )len , p );
535
538
return (grump );
536
539
}
537
540
if (shlen > 0 )
@@ -544,7 +547,8 @@ char *should;
544
547
if (shlen == 0 )
545
548
shlen = 1 ; /* force check for end-of-string */
546
549
if (strncmp (p , at , shlen ) != 0 ) {
547
- sprintf (grump , "matched null at `%.20s'" , p );
550
+ snprintf (grump , sizeof (grump ),
551
+ "matched null at `%.20s'" , p );
548
552
return (grump );
549
553
}
550
554
return (NULL );
@@ -577,7 +581,7 @@ char *name;
577
581
static char efbuf [100 ];
578
582
my_regex_t re ;
579
583
580
- sprintf (efbuf , "MY_REG_%s" , name );
584
+ snprintf (efbuf , sizeof ( efbuf ) , "MY_REG_%s" , name );
581
585
assert (strlen (efbuf ) < sizeof (efbuf ));
582
586
re .re_endp = efbuf ;
583
587
(void ) my_regerror (MY_REG_ATOI , & re , efbuf , sizeof (efbuf ));
0 commit comments