Author: philip
Date: Fri Apr  5 09:24:57 2013
New Revision: 1464899

URL: http://svn.apache.org/r1464899
Log:
Fix some reference counting bugs in the SWIG Python bindings.

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
  (svn_swig_py_propinheriteditemarray_to_dict,
   svn_swig_py_proparray_to_dict,
   svn_swig_py_locationhash_to_dict): Add missing Py_DECREF.

Modified:
    
subversion/trunk/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c

Modified: 
subversion/trunk/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c?rev=1464899&r1=1464898&r2=1464899&view=diff
==============================================================================
--- 
subversion/trunk/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c 
(original)
+++ 
subversion/trunk/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c 
Fri Apr  5 09:24:57 2013
@@ -742,6 +742,9 @@ svn_swig_py_propinheriteditemarray_to_di
             Py_DECREF(py_key);
             goto error;
           }
+
+        Py_DECREF(py_value);
+        Py_DECREF(py_key);
       }
 
     return dict;
@@ -786,7 +789,15 @@ PyObject *svn_swig_py_proparray_to_dict(
                }
           }
 
-        PyDict_SetItem(dict, py_key, py_value);
+        if (PyDict_SetItem(dict, py_key, py_value) == -1)
+          {
+            Py_DECREF(py_key);
+            Py_DECREF(py_value);
+            goto error;
+          }
+
+        Py_DECREF(py_key);
+        Py_DECREF(py_value);
     }
 
     return dict;
@@ -829,6 +840,7 @@ PyObject *svn_swig_py_locationhash_to_di
           }
         if (PyDict_SetItem(dict, key, value) == -1)
           {
+            Py_DECREF(key);
             Py_DECREF(value);
             Py_DECREF(dict);
             return NULL;


Reply via email to