mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-08-03 23:08:56 +00:00
python: Make the code compatibly with 3.2
The previous change used some 3.3-specific functions. We still support 3.2 so revert to 3.2-compatible calls. Reported-by: S.Çağlar Onur <caglar@10ur.org> Signed-off-by: Stéphane Graber <stgraber@ubuntu.com> Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
This commit is contained in:
parent
6516ad8b01
commit
15451ecf74
@ -49,18 +49,27 @@ convert_tuple_to_char_pointer_array(PyObject *argv) {
|
||||
assert(pyobj != NULL);
|
||||
|
||||
char *str = NULL;
|
||||
PyObject *pystr = NULL;
|
||||
|
||||
if (!PyUnicode_Check(pyobj)) {
|
||||
PyErr_SetString(PyExc_ValueError, "Expected a string");
|
||||
goto error;
|
||||
}
|
||||
|
||||
str = PyUnicode_AsUTF8(pyobj);
|
||||
if (!str) {
|
||||
pystr = PyUnicode_AsUTF8String(pyobj);
|
||||
if (!pystr) {
|
||||
/* Maybe it wasn't UTF-8 encoded. An exception is already set. */
|
||||
goto error;
|
||||
}
|
||||
|
||||
str = PyBytes_AsString(pystr);
|
||||
if (!str) {
|
||||
/* Maybe pystr wasn't a valid object. An exception is already set.
|
||||
*/
|
||||
Py_DECREF(pystr);
|
||||
goto error;
|
||||
}
|
||||
|
||||
/* We must make a copy of str, because it points into internal memory
|
||||
* which we do not own. Assume it's NULL terminated, otherwise we'd
|
||||
* have to use PyUnicode_AsUTF8AndSize() and be explicit about copying
|
||||
@ -71,6 +80,7 @@ convert_tuple_to_char_pointer_array(PyObject *argv) {
|
||||
/* Do not decref pyobj since we stole a reference by using
|
||||
* PyTuple_GET_ITEM().
|
||||
*/
|
||||
Py_DECREF(pystr);
|
||||
if (result[i] == NULL) {
|
||||
PyErr_SetNone(PyExc_MemoryError);
|
||||
goto error;
|
||||
|
Loading…
Reference in New Issue
Block a user