Skip to content

Commit 90f2c79

Browse files
Add a warning message about PyOS_snprintf (GH-95993)
(cherry picked from commit c7b2204) Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
1 parent a3a3701 commit 90f2c79

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

Doc/c-api/conversion.rst

+2-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ not.
2828
The wrappers ensure that ``str[size-1]`` is always ``'\0'`` upon return. They
2929
never write more than *size* bytes (including the trailing ``'\0'``) into str.
3030
Both functions require that ``str != NULL``, ``size > 0``, ``format != NULL``
31-
and ``size < INT_MAX``.
31+
and ``size < INT_MAX``. Note that this means there is no equivalent to the C99
32+
``n = snprintf(NULL, 0, ...)`` which would determine the necessary buffer size.
3233
3334
The return value (*rv*) for these functions should be interpreted as follows:
3435

Python/mysnprintf.c

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
would have been written had the buffer not been too small, and to set
1010
the last byte of the buffer to \0. At least MS _vsnprintf returns a
1111
negative value instead, and fills the entire buffer with non-\0 data.
12+
Unlike C99, our wrappers do not support passing a null buffer.
1213
1314
The wrappers ensure that str[size-1] is always \0 upon return.
1415

0 commit comments

Comments
 (0)