Commit 00b61270 authored by Martin v. Löwis's avatar Martin v. Löwis

Patch #650653: Raise always value error if the table is not 256 bytes long.

parent 63b4dd33
......@@ -192,6 +192,8 @@ def run_method_tests(test):
table = string.maketrans('a', 'A')
test('translate', 'abc', 'Abc', table)
test('translate', 'xyz', 'xyz', table)
test('translate', 'xyz', ValueError, 'too short', 'strip')
test('translate', 'xyz', ValueError, 'too short')
test('replace', 'one!two!three!', 'one@two!three!', '!', '@', 1)
test('replace', 'one!two!three!', 'onetwothree', '!', '')
......
......@@ -2070,6 +2070,12 @@ string_translate(PyStringObject *self, PyObject *args)
else if (PyObject_AsCharBuffer(tableobj, &table1, &tablen))
return NULL;
if (tablen != 256) {
PyErr_SetString(PyExc_ValueError,
"translation table must be 256 characters long");
return NULL;
}
if (delobj != NULL) {
if (PyString_Check(delobj)) {
del_table = PyString_AS_STRING(delobj);
......@@ -2084,12 +2090,6 @@ string_translate(PyStringObject *self, PyObject *args)
#endif
else if (PyObject_AsCharBuffer(delobj, &del_table, &dellen))
return NULL;
if (tablen != 256) {
PyErr_SetString(PyExc_ValueError,
"translation table must be 256 characters long");
return NULL;
}
}
else {
del_table = NULL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment