Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Convert more constant sized buffers
  • Loading branch information
sobolevn committed Feb 9, 2023
commit 61eee4d59701b42270c79514ba1c2a04cb8fb4ef
8 changes: 4 additions & 4 deletions Modules/_ctypes/_ctypes.c
Original file line number Diff line number Diff line change
Expand Up @@ -392,9 +392,9 @@ _ctypes_alloc_format_string_with_shape(int ndim, const Py_ssize_t *shape,
strcat(new_prefix, "(");
for (k = 0; k < ndim; ++k) {
if (k < ndim-1) {
sprintf(buf, "%zd,", shape[k]);
PyOS_snprintf(buf, sizeof(buf), "%zd,", shape[k]);
} else {
sprintf(buf, "%zd)", shape[k]);
PyOS_snprintf(buf, sizeof(buf), "%zd)", shape[k]);
}
strcat(new_prefix, buf);
}
Expand Down Expand Up @@ -4851,10 +4851,10 @@ PyCArrayType_from_ctype(PyObject *itemtype, Py_ssize_t length)
return NULL;
}
#ifdef MS_WIN64
sprintf(name, "%.200s_Array_%Id",
PyOS_snprintf(name, sizeof(name), "%.200s_Array_%Id",
((PyTypeObject *)itemtype)->tp_name, length);
#else
sprintf(name, "%.200s_Array_%ld",
PyOS_snprintf(name, sizeof(name), "%.200s_Array_%ld",
((PyTypeObject *)itemtype)->tp_name, (long)length);
#endif

Expand Down
2 changes: 1 addition & 1 deletion Modules/unicodedata.c
Original file line number Diff line number Diff line change
Expand Up @@ -1108,7 +1108,7 @@ _getucname(PyObject *self,
if (buflen < 28)
/* Worst case: CJK UNIFIED IDEOGRAPH-20000 */
return 0;
sprintf(buffer, "CJK UNIFIED IDEOGRAPH-%X", code);
PyOS_snprintf(buffer, buflen, "CJK UNIFIED IDEOGRAPH-%X", code);
return 1;
}

Expand Down
33 changes: 22 additions & 11 deletions Objects/unicodeobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -2455,33 +2455,42 @@ unicode_fromformat_arg(_PyUnicodeWriter *writer,

if (*f == 'u') {
if (longflag) {
len = sprintf(buffer, "%lu", va_arg(*vargs, unsigned long));
len = PyOS_snprintf(buffer, sizeof(buffer),
"%lu", va_arg(*vargs, unsigned long));
}
else if (longlongflag) {
len = sprintf(buffer, "%llu", va_arg(*vargs, unsigned long long));
len = PyOS_snprintf(buffer, sizeof(buffer),
"%llu", va_arg(*vargs, unsigned long long));
}
else if (size_tflag) {
len = sprintf(buffer, "%zu", va_arg(*vargs, size_t));
len = PyOS_snprintf(buffer, sizeof(buffer),
"%zu", va_arg(*vargs, size_t));
}
else {
len = sprintf(buffer, "%u", va_arg(*vargs, unsigned int));
len = PyOS_snprintf(buffer, sizeof(buffer),
"%u", va_arg(*vargs, unsigned int));
}
}
else if (*f == 'x') {
len = sprintf(buffer, "%x", va_arg(*vargs, int));
len = PyOS_snprintf(buffer, sizeof(buffer),
"%x", va_arg(*vargs, int));
}
else {
if (longflag) {
len = sprintf(buffer, "%li", va_arg(*vargs, long));
len = PyOS_snprintf(buffer, sizeof(buffer),
"%li", va_arg(*vargs, long));
}
else if (longlongflag) {
len = sprintf(buffer, "%lli", va_arg(*vargs, long long));
len = PyOS_snprintf(buffer, sizeof(buffer),
"%lli", va_arg(*vargs, long long));
}
else if (size_tflag) {
len = sprintf(buffer, "%zi", va_arg(*vargs, Py_ssize_t));
len = PyOS_snprintf(buffer, sizeof(buffer),
"%zi", va_arg(*vargs, Py_ssize_t));
}
else {
len = sprintf(buffer, "%i", va_arg(*vargs, int));
len = PyOS_snprintf(buffer, sizeof(buffer),
"%i", va_arg(*vargs, int));
}
}
assert(len >= 0);
Expand Down Expand Up @@ -2530,7 +2539,8 @@ unicode_fromformat_arg(_PyUnicodeWriter *writer,
{
char number[MAX_LONG_LONG_CHARS];

len = sprintf(number, "%p", va_arg(*vargs, void*));
len = PyOS_snprintf(number, sizeof(number),
"%p", va_arg(*vargs, void*));
assert(len >= 0);

/* %p is ill-defined: ensure leading 0x. */
Expand Down Expand Up @@ -8104,7 +8114,8 @@ charmap_encoding_error(
for (collpos = collstartpos; collpos < collendpos; ++collpos) {
char buffer[2+29+1+1];
char *cp;
sprintf(buffer, "&#%d;", (int)PyUnicode_READ_CHAR(unicode, collpos));
PyOS_snprintf(buffer, sizeof(buffer),
"&#%d;", (int)PyUnicode_READ_CHAR(unicode, collpos));
for (cp = buffer; *cp; ++cp) {
x = charmapencode_output(*cp, mapping, res, respos);
if (x==enc_EXCEPTION)
Expand Down