From d21cb609a832ec25f89a9fb1bf3e2a4effd0939d Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Thu, 22 Nov 2018 13:31:21 +0000 Subject: [PATCH] - review fixes for python module. git-svn-id: file:///svn/unbound/trunk@4969 be551aaa-1e26-0410-a405-d3ace91eadb9 --- doc/Changelog | 1 + pythonmod/interface.i | 3 ++- pythonmod/pythonmod.c | 7 ++++--- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index 0000db56f..265a34797 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -4,6 +4,7 @@ succeed for the python module. - pythonmod logs the python error and traceback on failure. - ignore debug python module for test in doxygen output. + - review fixes for python module. 21 November 2018: Wouter - Scrub NS records from NODATA responses as well. diff --git a/pythonmod/interface.i b/pythonmod/interface.i index b5b0c5b67..5f2559bac 100644 --- a/pythonmod/interface.i +++ b/pythonmod/interface.i @@ -53,7 +53,8 @@ i = 0; cnt = 0; while (i < len) { char buf[LDNS_MAX_LABELLEN+1]; - if(((unsigned int)name[i])+1 <= (unsigned int)sizeof(buf)) { + if(((unsigned int)name[i])+1 <= (unsigned int)sizeof(buf) && + i+(int)((unsigned int)name[i]) < len) { memmove(buf, name + i + 1, (unsigned int)name[i]); buf[(unsigned int)name[i]] = 0; PyList_SetItem(list, cnt, PyString_FromString(buf)); diff --git a/pythonmod/pythonmod.c b/pythonmod/pythonmod.c index 1e3d30b91..a17d977e9 100644 --- a/pythonmod/pythonmod.c +++ b/pythonmod/pythonmod.c @@ -139,7 +139,7 @@ log_py_err(void) modStringIO = PyImport_ImportModule("io"); if (modStringIO==NULL) { log_err("pythonmod: cannot print exception, " - "cannot ImportModule cStringIO or StringIO"); + "cannot ImportModule cStringIO or StringIO or io"); goto cleanup; } modTB = PyImport_ImportModule("traceback"); @@ -159,7 +159,7 @@ log_py_err(void) obStringIO = PyObject_CallObject(obFuncStringIO, NULL); if (obStringIO==NULL) { log_err("pythonmod: cannot print exception, " - "cannot cStringIO.StringIO()"); + "cannot call cStringIO.StringIO()"); goto cleanup; } @@ -206,7 +206,8 @@ log_py_err(void) /* And it should be a string all ready to go - duplicate it. */ if (!PyString_Check(obResult) && !PyUnicode_Check(obResult)) { log_err("pythonmod: cannot print exception, " - "cStringIO.getvalue() result did not String_Check"); + "cStringIO.getvalue() result did not String_Check" + " or Unicode_Check"); goto cleanup; } if(PyString_Check(obResult)) { -- 2.47.3