mirror of
https://github.com/samba-team/samba.git
synced 2025-01-10 01:18:15 +03:00
s4/param: Additionally accept unicode as string param in Py2
With the changes to make samba python code Py2/Py3 compatible there now are many instances where string content is decoded. Decoded string variables in Py2 are returned as the unicode type. Many Py2 c-module functions that take string arguments only check for the string type. However now it's quite possibe the content formally passed as a string argument is now passed as unicode after being decoded, such arguments are rejected and code can fail subtly. This only affects places where the type is directly checked e.g. via PyStr_Check etc. arguments that are parsed by ParseTuple* functions generally already accept both string and unicode (if 's', 'z', 's*' format specifiers are used) Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Alexander Bokovoy <ab@samba.org>
This commit is contained in:
parent
5c129351cc
commit
ba5f00deb7
@ -456,7 +456,7 @@ static Py_ssize_t py_lp_ctx_len(PyObject *self)
|
||||
static PyObject *py_lp_ctx_getitem(PyObject *self, PyObject *name)
|
||||
{
|
||||
struct loadparm_service *service;
|
||||
if (!PyStr_Check(name)) {
|
||||
if (!(PyStr_Check(name) || PyUnicode_Check(name))) {
|
||||
PyErr_SetString(PyExc_TypeError, "Only string subscripts are supported");
|
||||
return NULL;
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ _PUBLIC_ struct loadparm_context *lpcfg_from_py_object(TALLOC_CTX *mem_ctx, PyOb
|
||||
PyTypeObject *lp_type;
|
||||
bool is_lpobj;
|
||||
|
||||
if (PyStr_Check(py_obj)) {
|
||||
if (PyStr_Check(py_obj) || PyUnicode_Check(py_obj)) {
|
||||
lp_ctx = loadparm_init_global(false);
|
||||
if (lp_ctx == NULL) {
|
||||
return NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user