summaryrefslogtreecommitdiff
path: root/psutil/_psutil_posix.c
diff options
context:
space:
mode:
authorAthos Ribeiro <athoscribeiro@gmail.com>2019-09-26 11:29:53 +0200
committerGiampaolo Rodola <g.rodola@gmail.com>2019-09-26 17:29:53 +0800
commit2963b5f264b451a67dd26e19d38ab890a5bafa41 (patch)
tree86e86a9d877a1a89944d855faac7da2ace014045 /psutil/_psutil_posix.c
parent1075c23d08f26225a84440e44aa8baeb3d047ddd (diff)
downloadpsutil-2963b5f264b451a67dd26e19d38ab890a5bafa41.tar.gz
Fix #1563 - do not try to close invalid socket file descriptor (#1585)
Diffstat (limited to 'psutil/_psutil_posix.c')
-rw-r--r--psutil/_psutil_posix.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/psutil/_psutil_posix.c b/psutil/_psutil_posix.c
index d9a8f6d1..5d20b21e 100644
--- a/psutil/_psutil_posix.c
+++ b/psutil/_psutil_posix.c
@@ -354,7 +354,7 @@ error:
static PyObject *
psutil_net_if_mtu(PyObject *self, PyObject *args) {
char *nic_name;
- int sock = 0;
+ int sock = -1;
int ret;
#ifdef PSUTIL_SUNOS10
struct lifreq lifr;
@@ -387,7 +387,7 @@ psutil_net_if_mtu(PyObject *self, PyObject *args) {
#endif
error:
- if (sock != 0)
+ if (sock != -1)
close(sock);
return PyErr_SetFromErrno(PyExc_OSError);
}
@@ -401,7 +401,7 @@ error:
static PyObject *
psutil_net_if_flags(PyObject *self, PyObject *args) {
char *nic_name;
- int sock = 0;
+ int sock = -1;
int ret;
struct ifreq ifr;
@@ -424,7 +424,7 @@ psutil_net_if_flags(PyObject *self, PyObject *args) {
return Py_BuildValue("O", Py_False);
error:
- if (sock != 0)
+ if (sock != -1)
close(sock);
return PyErr_SetFromErrno(PyExc_OSError);
}
@@ -579,7 +579,7 @@ int psutil_get_nic_speed(int ifm_active) {
static PyObject *
psutil_net_if_duplex_speed(PyObject *self, PyObject *args) {
char *nic_name;
- int sock = 0;
+ int sock = -1;
int ret;
int duplex;
int speed;
@@ -591,7 +591,7 @@ psutil_net_if_duplex_speed(PyObject *self, PyObject *args) {
sock = socket(AF_INET, SOCK_DGRAM, 0);
if (sock == -1)
- goto error;
+ return PyErr_SetFromErrno(PyExc_OSError);
strncpy(ifr.ifr_name, nic_name, sizeof(ifr.ifr_name));
// speed / duplex
@@ -614,11 +614,6 @@ psutil_net_if_duplex_speed(PyObject *self, PyObject *args) {
close(sock);
return Py_BuildValue("[ii]", duplex, speed);
-
-error:
- if (sock != 0)
- close(sock);
- return PyErr_SetFromErrno(PyExc_OSError);
}
#endif // net_if_stats() macOS/BSD implementation