diff options
-rw-r--r-- | Modules/unicodedata.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Modules/unicodedata.c b/Modules/unicodedata.c index 4711123..36c96e4 100644 --- a/Modules/unicodedata.c +++ b/Modules/unicodedata.c @@ -227,7 +227,7 @@ unicodedata_decomposition(PyObject *self, PyObject *args) (code&((1<<DECOMP_SHIFT)-1))]; } - /* high byte is of hex bytes (usually one or two), low byte + /* high byte is number of hex bytes (usually one or two), low byte is prefix code (from*/ count = decomp_data[index] >> 8; @@ -241,7 +241,9 @@ unicodedata_decomposition(PyObject *self, PyObject *args) while (count-- > 0) { if (i) decomp[i++] = ' '; - sprintf(decomp + i, "%04X", decomp_data[++index]); + assert((size_t)i < sizeof(decomp)); + PyOS_snprintf(decomp + i, sizeof(decomp) - i, "%04X", + decomp_data[++index]); i += strlen(decomp + i); } |