summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Sommerseth <davids@redhat.com>2013-09-13 18:54:05 +0200
committerDavid Sommerseth <davids@redhat.com>2013-09-13 18:54:05 +0200
commitf8b0e05c03add3d0bd7736c3e3f81e8eb28bc7c3 (patch)
tree7333e6558d628884ed28378b621b6bfbdd054e8d
parent052d432d9be11a0b6b69826b540b03d1b80904a4 (diff)
downloadpython-ethtool-f8b0e05c03add3d0bd7736c3e3f81e8eb28bc7c3.tar.gz
python-ethtool-f8b0e05c03add3d0bd7736c3e3f81e8eb28bc7c3.tar.xz
python-ethtool-f8b0e05c03add3d0bd7736c3e3f81e8eb28bc7c3.zip
Fix missing error checking when reading /proc/net/dev
Signed-off-by: David Sommerseth <davids@redhat.com>
-rw-r--r--python-ethtool/ethtool.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/python-ethtool/ethtool.c b/python-ethtool/ethtool.c
index e58d5f9..a471726 100644
--- a/python-ethtool/ethtool.c
+++ b/python-ethtool/ethtool.c
@@ -80,7 +80,7 @@ static PyObject *get_active_devices(PyObject *self __unused, PyObject *args __un
static PyObject *get_devices(PyObject *self __unused, PyObject *args __unused)
{
char buffer[256];
- char *ret;;
+ char *ret;
PyObject *list = PyList_New(0);
FILE *fd = fopen(_PATH_PROCNET_DEV, "r");
@@ -89,7 +89,13 @@ static PyObject *get_devices(PyObject *self __unused, PyObject *args __unused)
return NULL;
}
/* skip over first two lines */
- ret = fgets(buffer, 256, fd); ret = fgets(buffer, 256, fd);
+ ret = fgets(buffer, 256, fd);
+ ret = fgets(buffer, 256, fd);
+ if( !ret ) {
+ PyErr_SetString(PyExc_OSError, strerror(errno));
+ return NULL;
+ }
+
while (!feof(fd)) {
PyObject *str;
char *name = buffer;