Control: tags 857346 + pending

Dear maintainer,

I've prepared an NMU for python-ethtool (versioned as 0.12-1.1) and
uploaded it to DELAYED/2. Please feel free to tell me if I
should delay it longer.

Regards.
Evgeni
diff -Nru python-ethtool-0.12/debian/changelog python-ethtool-0.12/debian/changelog
--- python-ethtool-0.12/debian/changelog	2016-09-24 15:34:09.000000000 +0200
+++ python-ethtool-0.12/debian/changelog	2017-03-18 16:47:04.000000000 +0100
@@ -1,3 +1,15 @@
+python-ethtool (0.12-1.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+
+  [ Evgeni Golov ]
+  * update Homage in d/control
+
+  [ Reiner Herrmann ]
+  * Fix argument parsing in C library (Closes: #857346)
+
+ -- Evgeni Golov <[email protected]>  Sat, 18 Mar 2017 16:47:04 +0100
+
 python-ethtool (0.12-1) unstable; urgency=medium
 
   * [ea5192b] Fix some other gcc5 warnings.
diff -Nru python-ethtool-0.12/debian/control python-ethtool-0.12/debian/control
--- python-ethtool-0.12/debian/control	2016-09-24 15:34:09.000000000 +0200
+++ python-ethtool-0.12/debian/control	2017-03-17 16:34:53.000000000 +0100
@@ -5,7 +5,7 @@
 Maintainer: Bernd Zeimetz <[email protected]>
 Build-Depends: debhelper (>= 7.0.50~), python-all-dev (>= 2.6.6-3~), libnl-route-3-dev, asciidoc, pkg-config, libxml2-utils, docbook-xml, xsltproc, sgml-data, libxml2, docbook-xsl, docbook-xml
 Standards-Version: 3.9.3
-Homepage: http://fedorapeople.org/gitweb?p=dsommers/public_git/python-ethtool.git;a=summary
+Homepage: https://fedorapeople.org/cgit/dsommers/public_git/python-ethtool.git/
 Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/spacewalk/python-ethtool.git
 Vcs-Git: git://anonscm.debian.org/collab-maint/spacewalk/python-ethtool.git
 
diff -Nru python-ethtool-0.12/debian/patches/fix_argument_parsing python-ethtool-0.12/debian/patches/fix_argument_parsing
--- python-ethtool-0.12/debian/patches/fix_argument_parsing	1970-01-01 01:00:00.000000000 +0100
+++ python-ethtool-0.12/debian/patches/fix_argument_parsing	2017-03-17 16:37:38.000000000 +0100
@@ -0,0 +1,111 @@
+Author: Reiner Herrmann <[email protected]>
+Description: Fix argument parsing of device names
+ PyArg_ParseTuple was called with the format string "s*" to parse the
+ passed device name into a C string.
+ But according to Python C-API documentation, "s*" is used for parsing data
+ into a Py_buffer structure:  https://docs.python.org/2/c-api/arg.html
+ To store it into a C string, "s" has to be used.
+ (Memory doesn't need to be freed, as it is managed by Python.)
+Bug-Debian: https://bugs.debian.org/857346
+
+--- a/python-ethtool/ethtool.c
++++ b/python-ethtool/ethtool.c
+@@ -121,7 +121,7 @@
+ 	const char *devname;
+ 	char hwaddr[20];
+ 
+-	if (!PyArg_ParseTuple(args, "s*", &devname))
++	if (!PyArg_ParseTuple(args, "s", &devname))
+ 		return NULL;
+ 
+ 	/* Setup our request structure. */
+@@ -163,7 +163,7 @@
+ 	const char *devname;
+ 	char ipaddr[20];
+ 
+-	if (!PyArg_ParseTuple(args, "s*", &devname))
++	if (!PyArg_ParseTuple(args, "s", &devname))
+ 		return NULL;
+ 
+ 	/* Setup our request structure. */
+@@ -295,7 +295,7 @@
+ 	const char *devname;
+ 	int fd, err;
+ 
+-	if (!PyArg_ParseTuple(args, "s*", &devname))
++	if (!PyArg_ParseTuple(args, "s", &devname))
+ 		return NULL;
+ 
+ 	/* Setup our request structure. */
+@@ -328,7 +328,7 @@
+ 	const char *devname;
+ 	char netmask[20];
+ 
+-	if (!PyArg_ParseTuple(args, "s*", &devname))
++	if (!PyArg_ParseTuple(args, "s", &devname))
+ 		return NULL;
+ 
+ 	/* Setup our request structure. */
+@@ -368,7 +368,7 @@
+ 	const char *devname;
+ 	char broadcast[20];
+ 
+-	if (!PyArg_ParseTuple(args, "s*", &devname))
++	if (!PyArg_ParseTuple(args, "s", &devname))
+ 		return NULL;
+ 
+ 	/* Setup our request structure. */
+@@ -409,7 +409,7 @@
+ 	char buf[2048];
+ 	const char *devname;
+ 
+-	if (!PyArg_ParseTuple(args, "s*", &devname))
++	if (!PyArg_ParseTuple(args, "s", &devname))
+ 		return NULL;
+ 
+ 	/* Setup our control structures. */
+@@ -479,7 +479,7 @@
+ 	char buf[1024];
+ 	const char *devname;
+ 
+-	if (!PyArg_ParseTuple(args, "s*", &devname))
++	if (!PyArg_ParseTuple(args, "s", &devname))
+ 		return NULL;
+ 
+ 	/* Setup our control structures. */
+@@ -545,7 +545,7 @@
+ 	const char *devname;
+ 	int err = -1;
+ 
+-	if (PyArg_ParseTuple(args, "s*", &devname))
++	if (PyArg_ParseTuple(args, "s", &devname))
+ 		err = send_command(cmd, devname, value);
+ 
+ 	return err;
+@@ -567,7 +567,7 @@
+ 	struct ethtool_value eval;
+ 	const char *devname;
+ 
+-	if (!PyArg_ParseTuple(args, "s*i", &devname, &eval.data))
++	if (!PyArg_ParseTuple(args, "si", &devname, &eval.data))
+ 		return -1;
+ 
+ 	return send_command(cmd, devname, &eval);
+@@ -752,7 +752,7 @@
+ 	const char *devname;
+ 	PyObject *dict;
+ 
+-	if (!PyArg_ParseTuple(args, "s*O", &devname, &dict))
++	if (!PyArg_ParseTuple(args, "sO", &devname, &dict))
+ 		return NULL;
+ 
+ 	if (struct_desc_from_dict(ethtool_coalesce_desc, &coal, dict) != 0)
+@@ -792,7 +792,7 @@
+ 	const char *devname;
+ 	PyObject *dict;
+ 
+-	if (!PyArg_ParseTuple(args, "s*O", &devname, &dict))
++	if (!PyArg_ParseTuple(args, "sO", &devname, &dict))
+ 		return NULL;
+ 
+ 	if (struct_desc_from_dict(ethtool_ringparam_desc, &ring, dict) != 0)
diff -Nru python-ethtool-0.12/debian/patches/series python-ethtool-0.12/debian/patches/series
--- python-ethtool-0.12/debian/patches/series	2016-09-24 15:34:09.000000000 +0200
+++ python-ethtool-0.12/debian/patches/series	2017-03-17 16:37:38.000000000 +0100
@@ -1,2 +1,3 @@
 fix_missing_if.h_include
 gcc5-warning-fixes
+fix_argument_parsing

Reply via email to