]> granicus.if.org Git - python/commitdiff
Merged revisions 82527 via svnmerge from
authorMark Dickinson <dickinsm@gmail.com>
Sun, 4 Jul 2010 10:15:59 +0000 (10:15 +0000)
committerMark Dickinson <dickinsm@gmail.com>
Sun, 4 Jul 2010 10:15:59 +0000 (10:15 +0000)
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r82527 | mark.dickinson | 2010-07-04 11:15:11 +0100 (Sun, 04 Jul 2010) | 1 line

  Fix refleak in Modules/audioop.c.
........

Modules/audioop.c

index d83ab5e3371e39b36f1f95f324d9b47751367438..ce3fce36ab652efafeab44c363aad0c3914def22 100644 (file)
@@ -804,10 +804,13 @@ audioop_tomono(PyObject *self, PyObject *args)
         return 0;
     cp = pcp.buf;
     len = pcp.len;
-    if (!audioop_check_parameters(len, size))
+    if (!audioop_check_parameters(len, size)) {
+        PyBuffer_Release(&pcp);
         return NULL;
+    }
     if (((len / size) & 1) != 0) {
         PyErr_SetString(AudioopError, "not a whole number of frames");
+        PyBuffer_Release(&pcp);
         return NULL;
     }
 
@@ -821,8 +824,10 @@ audioop_tomono(PyObject *self, PyObject *args)
     }
 
     rv = PyBytes_FromStringAndSize(NULL, len/2);
-    if ( rv == 0 )
+    if ( rv == 0 ) {
+        PyBuffer_Release(&pcp);
         return 0;
+    }
     ncp = (signed char *)PyBytes_AsString(rv);