Issue #13806: The size check in audioop decompression functions was too strict and could reject valid compressed data.
Patch by Oleg Plakhotnyuk.
diff --git a/Modules/audioop.c b/Modules/audioop.c
index fb69ed3..fc79cf5 100644
--- a/Modules/audioop.c
+++ b/Modules/audioop.c
@@ -1298,7 +1298,7 @@
&cp, &len, &size) )
return 0;
- if (!audioop_check_parameters(len, size))
+ if (!audioop_check_size(size))
return NULL;
if (len > INT_MAX/size) {
@@ -1367,7 +1367,7 @@
&cp, &len, &size) )
return 0;
- if (!audioop_check_parameters(len, size))
+ if (!audioop_check_size(size))
return NULL;
if (len > INT_MAX/size) {
@@ -1509,7 +1509,7 @@
&cp, &len, &size, &state) )
return 0;
- if (!audioop_check_parameters(len, size))
+ if (!audioop_check_size(size))
return NULL;
/* Decode state, should have (value, step) */