From e170c0a63d28018283d878cf6ca83137cc6c07e0 Mon Sep 17 00:00:00 2001 From: sobolevn Date: Sat, 14 Nov 2026 12:55:25 +0300 Subject: [PATCH] gh-101703: Use `PyOS_snprintf` in `_datetimemodule.c` (GH-161982) (cherry picked from commit 1d6419572978146dd52dbf9fd9521a084ba1cd6c) Co-authored-by: sobolevn --- Modules/_datetimemodule.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/Modules/_datetimemodule.c b/Modules/_datetimemodule.c index b5e43eebc3b013..23eec54cb6c182 100644 --- a/Modules/_datetimemodule.c +++ b/Modules/_datetimemodule.c @@ -1870,12 +1870,17 @@ static PyObject * make_freplacement(PyObject *object) { char freplacement[64]; - if (PyTime_Check(object)) - sprintf(freplacement, "%06d", TIME_GET_MICROSECOND(object)); - else if (PyDateTime_Check(object)) - sprintf(freplacement, "%06d", DATE_GET_MICROSECOND(object)); - else - sprintf(freplacement, "%06d", 0); + if (PyTime_Check(object)) { + PyOS_snprintf(freplacement, sizeof(freplacement), + "%06d", TIME_GET_MICROSECOND(object)); + } + else if (PyDateTime_Check(object)) { + PyOS_snprintf(freplacement, sizeof(freplacement), + "%06d", DATE_GET_MICROSECOND(object)); + } + else { + PyOS_snprintf(freplacement, sizeof(freplacement), "%06d", 0); + } return PyUnicode_FromString(freplacement); }