summaryrefslogtreecommitdiff
path: root/Objects/unicodeobject.c
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2012-10-06 23:05:45 +0200
committerVictor Stinner <victor.stinner@gmail.com>2012-10-06 23:05:45 +0200
commitff5a848db585a90e55c5e21c0f3b739c402bb760 (patch)
treebae07e11bf8daa3008f98f6bdafc01d693216b8a /Objects/unicodeobject.c
parent3921e90c5a658179a90ffcf378f245aa9ca33208 (diff)
downloadcpython-git-ff5a848db585a90e55c5e21c0f3b739c402bb760.tar.gz
Issue #16147: PyUnicode_FromFormatV() now raises an error if the argument of
'%c' is not in the range(0x110000).
Diffstat (limited to 'Objects/unicodeobject.c')
-rw-r--r--Objects/unicodeobject.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 40e56cdced..e6fe1fba4e 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -2417,6 +2417,11 @@ unicode_fromformat_arg(_PyUnicodeWriter *writer,
case 'c':
{
int ordinal = va_arg(*vargs, int);
+ if (ordinal < 0 || ordinal > MAX_UNICODE) {
+ PyErr_SetString(PyExc_ValueError,
+ "character argument not in range(0x110000)");
+ return NULL;
+ }
if (_PyUnicodeWriter_Prepare(writer, 1, ordinal) == -1)
return NULL;
PyUnicode_WRITE(writer->kind, writer->data, writer->pos, ordinal);