On Thu, Oct 17, 2024 at 2:34 PM James Carter <jwcart2@xxxxxxxxx> wrote: > > On Wed, Oct 16, 2024 at 2:48 PM Petr Lautrbach <lautrbach@xxxxxxxxxx> wrote: > > > > https://github.com/swig/swig/blob/master/CHANGES.current > > > > "[Python] #2907 Fix returning null from functions with output > > parameters. Ensures OUTPUT and INOUT typemaps are handled > > consistently wrt return type. > > > > New declaration of SWIG_Python_AppendOutput is now: > > > > SWIG_Python_AppendOutput(PyObject* result, PyObject* obj, int is_void); > > > > The 3rd parameter is new and the new $isvoid special variable > > should be passed to it, indicating whether or not the wrapped > > function returns void. > > > > Also consider replacing with: > > > > SWIG_AppendOutput(PyObject* result, PyObject* obj); > > > > which calls SWIG_Python_AppendOutput with same parameters but adding $isvoid > > for final parameter." > > > > Fixes: https://github.com/SELinuxProject/selinux/issues/447 > > > > selinuxswig_python_wrap.c: In function ‘_wrap_security_compute_user’: > > selinuxswig_python_wrap.c:11499:17: error: too few arguments to function ‘SWIG_Python_AppendOutput’ > > 11499 | resultobj = SWIG_Python_AppendOutput(resultobj, plist); > > | ^~~~~~~~~~~~~~~~~~~~~~~~ > > selinuxswig_python_wrap.c:1248:1: note: declared here > > 1248 | SWIG_Python_AppendOutput(PyObject* result, PyObject* obj, int is_void) { > > | ^~~~~~~~~~~~~~~~~~~~~~~~ > > selinuxswig_python_wrap.c: In function ‘_wrap_security_compute_user_raw’: > > selinuxswig_python_wrap.c:11570:17: error: too few arguments to function ‘SWIG_Python_AppendOutput’ > > 11570 | resultobj = SWIG_Python_AppendOutput(resultobj, plist); > > | ^~~~~~~~~~~~~~~~~~~~~~~~ > > selinuxswig_python_wrap.c:1248:1: note: declared here > > 1248 | SWIG_Python_AppendOutput(PyObject* result, PyObject* obj, int is_void) { > > | ^~~~~~~~~~~~~~~~~~~~~~~~ > > selinuxswig_python_wrap.c: In function ‘_wrap_security_get_boolean_names’: > > selinuxswig_python_wrap.c:12470:17: error: too few arguments to function ‘SWIG_Python_AppendOutput’ > > 12470 | resultobj = SWIG_Python_AppendOutput(resultobj, list); > > | ^~~~~~~~~~~~~~~~~~~~~~~~ > > selinuxswig_python_wrap.c:1248:1: note: declared here > > 1248 | SWIG_Python_AppendOutput(PyObject* result, PyObject* obj, int is_void) { > > | ^~~~~~~~~~~~~~~~~~~~~~~~ > > error: command '/usr/bin/gcc' failed with exit code 1 > > > > Suggested-by: Jitka Plesnikova <jplesnik@xxxxxxxxxx> > > Signed-off-by: Petr Lautrbach <lautrbach@xxxxxxxxxx> > > For these two patches: > Acked-by: James Carter <jwcart2@xxxxxxxxx> > These two patches have been merged. Thanks, Jim > > > --- > > libselinux/src/selinuxswig_python.i | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/libselinux/src/selinuxswig_python.i b/libselinux/src/selinuxswig_python.i > > index 17e03b9e36a5..03ed296d5b85 100644 > > --- a/libselinux/src/selinuxswig_python.i > > +++ b/libselinux/src/selinuxswig_python.i > > @@ -71,7 +71,7 @@ def install(src, dest): > > for (i = 0; i < *$2; i++) { > > PyList_SetItem(list, i, PyString_FromString((*$1)[i])); > > } > > - $result = SWIG_Python_AppendOutput($result, list); > > + $result = SWIG_AppendOutput($result, list); > > } > > > > /* return a sid along with the result */ > > @@ -108,7 +108,7 @@ def install(src, dest): > > plist = PyList_New(0); > > } > > > > - $result = SWIG_Python_AppendOutput($result, plist); > > + $result = SWIG_AppendOutput($result, plist); > > } > > > > /* Makes functions in get_context_list.h return a Python list of contexts */ > > -- > > 2.47.0 > > > >