diff --git a/doc/Changelog b/doc/Changelog index 6e5b59662..46b678acf 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +28 February 2019: Wouter + - Remove memory leak on pythonmod python2 script file init. + - Remove swig gcc8 python function cast warnings, they are ignored. + 27 February 2019: Wouter - Fix #4229: Unbound man pages lack information, about access-control order and local zone tags, and elements in views. diff --git a/libunbound/python/libunbound.i b/libunbound/python/libunbound.i index 4af75637c..6196a3979 100644 --- a/libunbound/python/libunbound.i +++ b/libunbound/python/libunbound.i @@ -33,8 +33,16 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ +%begin %{ +/* store state of warning output, restored at later pop */ +#pragma GCC diagnostic push +/* ignore gcc8 METH_NOARGS function cast warnings for swig function pointers */ +#pragma GCC diagnostic ignored "-Wcast-function-type" +%} %module unbound %{ +/* restore state of warning output, remove the functioncast ignore */ +#pragma GCC diagnostic pop #include #ifdef HAVE_SYS_SOCKET_H #include diff --git a/pythonmod/interface.i b/pythonmod/interface.i index 9b5e15a4a..f9fd07b51 100644 --- a/pythonmod/interface.i +++ b/pythonmod/interface.i @@ -1,8 +1,16 @@ /* * interface.i: unbound python module */ +%begin %{ +/* store state of warning output, restored at later pop */ +#pragma GCC diagnostic push +/* ignore gcc8 METH_NOARGS function cast warnings for swig function pointers */ +#pragma GCC diagnostic ignored "-Wcast-function-type" +%} %module unboundmodule %{ +/* restore state of warning output, remove the functioncast ignore */ +#pragma GCC diagnostic pop /** * \file * This is the interface between the unbound server and a python module diff --git a/pythonmod/pythonmod.c b/pythonmod/pythonmod.c index 459ae1e8c..9009a28da 100644 --- a/pythonmod/pythonmod.c +++ b/pythonmod/pythonmod.c @@ -354,7 +354,11 @@ int pythonmod_init(struct module_env* env, int id) PyGILState_Release(gil); return 0; } +#if PY_MAJOR_VERSION < 3 + Py_XDECREF(PyFileObject); +#else fclose(script_py); +#endif if ((pe->func_init = PyDict_GetItemString(pe->dict, "init_standard")) == NULL) {