@@ -270,40 +270,43 @@ PyBytes_FromFormatV(const char *format, va_list vargs)
270
270
271
271
case 'd' :
272
272
if (longflag ) {
273
- sprintf (buffer , "%ld" , va_arg (vargs , long ));
273
+ snprintf (buffer , sizeof ( buffer ) , "%ld" , va_arg (vargs , long ));
274
274
}
275
275
else if (size_tflag ) {
276
- sprintf (buffer , "%zd" , va_arg (vargs , Py_ssize_t ));
276
+ snprintf (buffer , sizeof (buffer ),
277
+ "%zd" , va_arg (vargs , Py_ssize_t ));
277
278
}
278
279
else {
279
- sprintf (buffer , "%d" , va_arg (vargs , int ));
280
+ snprintf (buffer , sizeof ( buffer ) , "%d" , va_arg (vargs , int ));
280
281
}
281
282
assert (strlen (buffer ) < sizeof (buffer ));
282
283
WRITE_BYTES (buffer );
283
284
break ;
284
285
285
286
case 'u' :
286
287
if (longflag ) {
287
- sprintf (buffer , "%lu" , va_arg (vargs , unsigned long ));
288
+ snprintf (buffer , sizeof (buffer ),
289
+ "%lu" , va_arg (vargs , unsigned long ));
288
290
}
289
291
else if (size_tflag ) {
290
- sprintf (buffer , "%zu" , va_arg (vargs , size_t ));
292
+ snprintf (buffer , sizeof ( buffer ) , "%zu" , va_arg (vargs , size_t ));
291
293
}
292
294
else {
293
- sprintf (buffer , "%u" , va_arg (vargs , unsigned int ));
295
+ snprintf (buffer , sizeof (buffer ),
296
+ "%u" , va_arg (vargs , unsigned int ));
294
297
}
295
298
assert (strlen (buffer ) < sizeof (buffer ));
296
299
WRITE_BYTES (buffer );
297
300
break ;
298
301
299
302
case 'i' :
300
- sprintf (buffer , "%i" , va_arg (vargs , int ));
303
+ snprintf (buffer , sizeof ( buffer ) , "%i" , va_arg (vargs , int ));
301
304
assert (strlen (buffer ) < sizeof (buffer ));
302
305
WRITE_BYTES (buffer );
303
306
break ;
304
307
305
308
case 'x' :
306
- sprintf (buffer , "%x" , va_arg (vargs , int ));
309
+ snprintf (buffer , sizeof ( buffer ) , "%x" , va_arg (vargs , int ));
307
310
assert (strlen (buffer ) < sizeof (buffer ));
308
311
WRITE_BYTES (buffer );
309
312
break ;
@@ -329,7 +332,7 @@ PyBytes_FromFormatV(const char *format, va_list vargs)
329
332
}
330
333
331
334
case 'p' :
332
- sprintf (buffer , "%p" , va_arg (vargs , void * ));
335
+ snprintf (buffer , sizeof ( buffer ) , "%p" , va_arg (vargs , void * ));
333
336
assert (strlen (buffer ) < sizeof (buffer ));
334
337
/* %p is ill-defined: ensure leading 0x. */
335
338
if (buffer [1 ] == 'X' )
0 commit comments