From 8448740875ed401542f683313cfdfa7357918329 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20=C5=98=C3=ADdk=C3=BD?= Date: Mon, 19 Jul 2021 15:46:01 +0200 Subject: [PATCH] Resolves: #1970938 - fix UseNumeric in Python library --- net-snmp-5.9.1-python-usenumeric.patch | 60 ++++++++++++++++++++++++++ net-snmp.spec | 7 ++- 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 net-snmp-5.9.1-python-usenumeric.patch diff --git a/net-snmp-5.9.1-python-usenumeric.patch b/net-snmp-5.9.1-python-usenumeric.patch new file mode 100644 index 0000000..2f1d1ae --- /dev/null +++ b/net-snmp-5.9.1-python-usenumeric.patch @@ -0,0 +1,60 @@ +From 8c1dad23301692799749d75a3c039b8ae7c07f8e Mon Sep 17 00:00:00 2001 +From: Bart Van Assche +Date: Wed, 9 Jun 2021 14:19:46 -0700 +Subject: [PATCH] Python: Fix snmpwalk with UseNumeric=1 + +Fixes: c744be5ffed6 ("Python: Introduce build_python_varbind()") +Fixes: https://github.com/net-snmp/net-snmp/issues/303 +--- + python/netsnmp/client_intf.c | 9 ++++----- + 1 file changed, 4 insertions(+), 5 deletions(-) + +diff --git a/python/netsnmp/client_intf.c b/python/netsnmp/client_intf.c +index e5e7372303..94da39fe34 100644 +--- a/python/netsnmp/client_intf.c ++++ b/python/netsnmp/client_intf.c +@@ -1316,7 +1316,7 @@ netsnmp_delete_session(PyObject *self, PyObject *args) + + static int build_python_varbind(PyObject *varbind, netsnmp_variable_list *vars, + int varlist_ind, int sprintval_flag, int *len, +- char **str_buf) ++ char **str_buf, int getlabel_flag) + { + struct tree *tp; + int type; +@@ -1326,7 +1326,6 @@ static int build_python_varbind(PyObject *varbind, netsnmp_variable_list *vars, + int buf_over = 0; + const char *tag; + const char *iid; +- int getlabel_flag = NO_FLAGS; + + if (!PyObject_HasAttrString(varbind, "tag")) + return TYPE_OTHER; +@@ -1523,7 +1522,7 @@ netsnmp_get_or_getnext(PyObject *self, PyObject *args, int pdu_type, + + varbind = PySequence_GetItem(varlist, varlist_ind); + type = build_python_varbind(varbind, vars, varlist_ind, sprintval_flag, +- &len, &str_buf); ++ &len, &str_buf, getlabel_flag); + if (type != TYPE_OTHER) { + /* save in return tuple as well */ + if ((type == SNMP_ENDOFMIBVIEW) || +@@ -1832,7 +1831,7 @@ netsnmp_walk(PyObject *self, PyObject *args) + + varbind = py_netsnmp_construct_varbind(); + if (varbind && build_python_varbind(varbind, vars, varlist_ind, +- sprintval_flag, &len, &str_buf) != ++ sprintval_flag, &len, &str_buf, getlabel_flag) != + TYPE_OTHER) { + const int hex = is_hex(str_buf, len); + +@@ -2055,7 +2054,7 @@ netsnmp_getbulk(PyObject *self, PyObject *args) + + varbind = py_netsnmp_construct_varbind(); + if (varbind && build_python_varbind(varbind, vars, varbind_ind, +- sprintval_flag, &len, &str_buf) != TYPE_OTHER) { ++ sprintval_flag, &len, &str_buf, getlabel_flag) != TYPE_OTHER) { + const int hex = is_hex(str_buf, len); + + /* push varbind onto varbinds */ + diff --git a/net-snmp.spec b/net-snmp.spec index bb7dc4c..fac868b 100644 --- a/net-snmp.spec +++ b/net-snmp.spec @@ -10,7 +10,7 @@ Summary: A collection of SNMP protocol tools and libraries Name: net-snmp Version: 5.9.1 -Release: 3%{?dist} +Release: 4%{?dist} Epoch: 1 License: BSD @@ -58,6 +58,7 @@ Patch101: net-snmp-5.8-modern-rpm-api.patch #disable this patch due compatibility issues Patch102: net-snmp-5.9-python3.patch +Patch103: net-snmp-5.9.1-python-usenumeric.patch Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-agent-libs%{?_isa} = %{epoch}:%{version}-%{release} @@ -231,6 +232,7 @@ cp %{SOURCE10} . %patch101 -p1 -b .modern-rpm-api %patch102 -p1 +%patch103 -p1 # disable failing test - see https://bugzilla.redhat.com/show_bug.cgi?id=680697 rm testing/fulltests/default/T200* @@ -496,6 +498,9 @@ LD_LIBRARY_PATH=%{buildroot}/%{_libdir} make test %{_libdir}/libnetsnmptrapd*.so.%{soname}* %changelog +* Mon Jul 19 2021 Josef Ridky - 1:5.9.1-4 +- fix UseNumeric in Python library (#1970938) + * Wed Jun 16 2021 Mohan Boddu - 1:5.9.1-3 - Rebuilt for RHEL 9 BETA for openssl 3.0 Related: rhbz#1971065