summaryrefslogtreecommitdiff
path: root/netifaces.c
diff options
context:
space:
mode:
Diffstat (limited to 'netifaces.c')
-rw-r--r--netifaces.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/netifaces.c b/netifaces.c
index 51c126a..36bacf3 100644
--- a/netifaces.c
+++ b/netifaces.c
@@ -1253,6 +1253,9 @@ gateways (PyObject *self)
PyDict_SetItemString (result, "default", defaults);
Py_DECREF(defaults);
+ /* This prevents a crash on PyPy */
+ defaults = PyDict_GetItemString (result, "default");
+
for (n = 0; n < table->NumEntries; ++n) {
MIB_IFROW ifRow;
PyObject *ifname;
@@ -1382,6 +1385,9 @@ gateways (PyObject *self)
PyDict_SetItemString (result, "default", defaults);
Py_DECREF(defaults);
+ /* This prevents a crash on PyPy */
+ defaults = PyDict_GetItemString (result, "default");
+
for (n = 0; n < table->dwNumEntries; ++n) {
MIB_IFROW ifRow;
PyObject *ifname;
@@ -1473,6 +1479,9 @@ gateways (PyObject *self)
PyDict_SetItemString (result, "default", defaults);
Py_DECREF (defaults);
+ /* This prevents a crash on PyPy */
+ defaults = PyDict_GetItemString (result, "default");
+
msgbuf = pmsg = (struct routing_msg *)malloc (bufsize);
if (!pmsg) {
@@ -1700,6 +1709,9 @@ gateways (PyObject *self)
PyDict_SetItemString (result, "default", defaults);
Py_DECREF (defaults);
+ /* This prevents a crash on PyPy */
+ defaults = PyDict_GetItemString (result, "default");
+
/* Remembering that the routing table may change while we're reading it,
we need to do this in a loop until we succeed. */
do {