Skip to content

Commit 61eee4d

Browse files
committed
Convert more constant sized buffers
1 parent 8fb350d commit 61eee4d

File tree

3 files changed

+27
-16
lines changed

3 files changed

+27
-16
lines changed

Modules/_ctypes/_ctypes.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -392,9 +392,9 @@ _ctypes_alloc_format_string_with_shape(int ndim, const Py_ssize_t *shape,
392392
strcat(new_prefix, "(");
393393
for (k = 0; k < ndim; ++k) {
394394
if (k < ndim-1) {
395-
sprintf(buf, "%zd,", shape[k]);
395+
PyOS_snprintf(buf, sizeof(buf), "%zd,", shape[k]);
396396
} else {
397-
sprintf(buf, "%zd)", shape[k]);
397+
PyOS_snprintf(buf, sizeof(buf), "%zd)", shape[k]);
398398
}
399399
strcat(new_prefix, buf);
400400
}
@@ -4851,10 +4851,10 @@ PyCArrayType_from_ctype(PyObject *itemtype, Py_ssize_t length)
48514851
return NULL;
48524852
}
48534853
#ifdef MS_WIN64
4854-
sprintf(name, "%.200s_Array_%Id",
4854+
PyOS_snprintf(name, sizeof(name), "%.200s_Array_%Id",
48554855
((PyTypeObject *)itemtype)->tp_name, length);
48564856
#else
4857-
sprintf(name, "%.200s_Array_%ld",
4857+
PyOS_snprintf(name, sizeof(name), "%.200s_Array_%ld",
48584858
((PyTypeObject *)itemtype)->tp_name, (long)length);
48594859
#endif
48604860

Modules/unicodedata.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1108,7 +1108,7 @@ _getucname(PyObject *self,
11081108
if (buflen < 28)
11091109
/* Worst case: CJK UNIFIED IDEOGRAPH-20000 */
11101110
return 0;
1111-
sprintf(buffer, "CJK UNIFIED IDEOGRAPH-%X", code);
1111+
PyOS_snprintf(buffer, buflen, "CJK UNIFIED IDEOGRAPH-%X", code);
11121112
return 1;
11131113
}
11141114

Objects/unicodeobject.c

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2455,33 +2455,42 @@ unicode_fromformat_arg(_PyUnicodeWriter *writer,
24552455

24562456
if (*f == 'u') {
24572457
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));
24592460
}
24602461
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));
24622464
}
24632465
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));
24652468
}
24662469
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));
24682472
}
24692473
}
24702474
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));
24722477
}
24732478
else {
24742479
if (longflag) {
2475-
len = sprintf(buffer, "%li", va_arg(*vargs, long));
2480+
len = PyOS_snprintf(buffer, sizeof(buffer),
2481+
"%li", va_arg(*vargs, long));
24762482
}
24772483
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));
24792486
}
24802487
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));
24822490
}
24832491
else {
2484-
len = sprintf(buffer, "%i", va_arg(*vargs, int));
2492+
len = PyOS_snprintf(buffer, sizeof(buffer),
2493+
"%i", va_arg(*vargs, int));
24852494
}
24862495
}
24872496
assert(len >= 0);
@@ -2530,7 +2539,8 @@ unicode_fromformat_arg(_PyUnicodeWriter *writer,
25302539
{
25312540
char number[MAX_LONG_LONG_CHARS];
25322541

2533-
len = sprintf(number, "%p", va_arg(*vargs, void*));
2542+
len = PyOS_snprintf(number, sizeof(number),
2543+
"%p", va_arg(*vargs, void*));
25342544
assert(len >= 0);
25352545

25362546
/* %p is ill-defined: ensure leading 0x. */
@@ -8104,7 +8114,8 @@ charmap_encoding_error(
81048114
for (collpos = collstartpos; collpos < collendpos; ++collpos) {
81058115
char buffer[2+29+1+1];
81068116
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));
81088119
for (cp = buffer; *cp; ++cp) {
81098120
x = charmapencode_output(*cp, mapping, res, respos);
81108121
if (x==enc_EXCEPTION)

0 commit comments

Comments
 (0)