@@ -2455,33 +2455,42 @@ unicode_fromformat_arg(_PyUnicodeWriter *writer,
2455
2455
2456
2456
if (* f == 'u' ) {
2457
2457
if (longflag ) {
2458
- len = sprintf (buffer , "%lu" , va_arg (* vargs , unsigned long ));
2458
+ len = PyOS_snprintf (buffer , sizeof (buffer ),
2459
+ "%lu" , va_arg (* vargs , unsigned long ));
2459
2460
}
2460
2461
else if (longlongflag ) {
2461
- len = sprintf (buffer , "%llu" , va_arg (* vargs , unsigned long long));
2462
+ len = PyOS_snprintf (buffer , sizeof (buffer ),
2463
+ "%llu" , va_arg (* vargs , unsigned long long));
2462
2464
}
2463
2465
else if (size_tflag ) {
2464
- len = sprintf (buffer , "%zu" , va_arg (* vargs , size_t ));
2466
+ len = PyOS_snprintf (buffer , sizeof (buffer ),
2467
+ "%zu" , va_arg (* vargs , size_t ));
2465
2468
}
2466
2469
else {
2467
- len = sprintf (buffer , "%u" , va_arg (* vargs , unsigned int ));
2470
+ len = PyOS_snprintf (buffer , sizeof (buffer ),
2471
+ "%u" , va_arg (* vargs , unsigned int ));
2468
2472
}
2469
2473
}
2470
2474
else if (* f == 'x' ) {
2471
- len = sprintf (buffer , "%x" , va_arg (* vargs , int ));
2475
+ len = PyOS_snprintf (buffer , sizeof (buffer ),
2476
+ "%x" , va_arg (* vargs , int ));
2472
2477
}
2473
2478
else {
2474
2479
if (longflag ) {
2475
- len = sprintf (buffer , "%li" , va_arg (* vargs , long ));
2480
+ len = PyOS_snprintf (buffer , sizeof (buffer ),
2481
+ "%li" , va_arg (* vargs , long ));
2476
2482
}
2477
2483
else if (longlongflag ) {
2478
- len = sprintf (buffer , "%lli" , va_arg (* vargs , long long ));
2484
+ len = PyOS_snprintf (buffer , sizeof (buffer ),
2485
+ "%lli" , va_arg (* vargs , long long ));
2479
2486
}
2480
2487
else if (size_tflag ) {
2481
- len = sprintf (buffer , "%zi" , va_arg (* vargs , Py_ssize_t ));
2488
+ len = PyOS_snprintf (buffer , sizeof (buffer ),
2489
+ "%zi" , va_arg (* vargs , Py_ssize_t ));
2482
2490
}
2483
2491
else {
2484
- len = sprintf (buffer , "%i" , va_arg (* vargs , int ));
2492
+ len = PyOS_snprintf (buffer , sizeof (buffer ),
2493
+ "%i" , va_arg (* vargs , int ));
2485
2494
}
2486
2495
}
2487
2496
assert (len >= 0 );
@@ -2530,7 +2539,8 @@ unicode_fromformat_arg(_PyUnicodeWriter *writer,
2530
2539
{
2531
2540
char number [MAX_LONG_LONG_CHARS ];
2532
2541
2533
- len = sprintf (number , "%p" , va_arg (* vargs , void * ));
2542
+ len = PyOS_snprintf (number , sizeof (number ),
2543
+ "%p" , va_arg (* vargs , void * ));
2534
2544
assert (len >= 0 );
2535
2545
2536
2546
/* %p is ill-defined: ensure leading 0x. */
@@ -8104,7 +8114,8 @@ charmap_encoding_error(
8104
8114
for (collpos = collstartpos ; collpos < collendpos ; ++ collpos ) {
8105
8115
char buffer [2 + 29 + 1 + 1 ];
8106
8116
char * cp ;
8107
- sprintf (buffer , "&#%d;" , (int )PyUnicode_READ_CHAR (unicode , collpos ));
8117
+ PyOS_snprintf (buffer , sizeof (buffer ),
8118
+ "&#%d;" , (int )PyUnicode_READ_CHAR (unicode , collpos ));
8108
8119
for (cp = buffer ; * cp ; ++ cp ) {
8109
8120
x = charmapencode_output (* cp , mapping , res , respos );
8110
8121
if (x == enc_EXCEPTION )
0 commit comments