Issue 3306. Better control for a lenght in findmax() function.

This commit is contained in:
Facundo Batista 2008-07-07 17:02:59 +00:00
parent 10cf7d947d
commit 1a664419bb
2 changed files with 5 additions and 1 deletions

View File

@ -161,6 +161,10 @@ class TestAudioop(unittest.TestCase):
self.assertEqual(audioop.getsample(data[1], 2, i), i)
self.assertEqual(audioop.getsample(data[2], 4, i), i)
def test_negavitelen(self):
# from issue 3306, previously it segfaulted
self.assertRaises(audioop.error,
audioop.findmax, ''.join( chr(x) for x in xrange(256)), -2392392)
def test_main():
run_unittest(TestAudioop)

View File

@ -575,7 +575,7 @@ audioop_findmax(PyObject *self, PyObject *args)
}
len1 >>= 1;
if ( len1 < len2 ) {
if ( len2 < 0 || len1 < len2 ) {
PyErr_SetString(AudioopError, "Input sample should be longer");
return 0;
}