summaryrefslogtreecommitdiff
path: root/Objects/unicodeobject.c
diff options
context:
space:
mode:
Diffstat (limited to 'Objects/unicodeobject.c')
-rw-r--r--Objects/unicodeobject.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index ae2dbf519f..af05f4c569 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -631,6 +631,14 @@ PyUnicode_CopyCharacters(PyObject *to, Py_ssize_t to_start,
how_many, to_start, PyUnicode_GET_LENGTH(to));
return -1;
}
+ if (how_many == 0)
+ return 0;
+
+ if (Py_REFCNT(to) != 1) {
+ PyErr_SetString(PyExc_ValueError,
+ "Cannot modify a string having more than 1 reference");
+ return -1;
+ }
from_kind = PyUnicode_KIND(from);
to_kind = PyUnicode_KIND(to);