aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2015-03-22 03:40:17 +0100
committerMichael Niedermayer <michaelni@gmx.at>2015-03-22 03:40:37 +0100
commit324067d18bf23993855c4fc59f947488e9854ed7 (patch)
tree4de25a0dc7c3fe3216430a0a99e91d9581e4d61f
parent0346783c9886f7d86a12ad9ed20d768a308f5da2 (diff)
parent7ebb3022297aa00afda6800105684b8303f2608e (diff)
downloadffmpeg-324067d18bf23993855c4fc59f947488e9854ed7.tar.gz
Merge commit '7ebb3022297aa00afda6800105684b8303f2608e'
* commit '7ebb3022297aa00afda6800105684b8303f2608e': swscale: Check memory allocation Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libswscale/utils.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/libswscale/utils.c b/libswscale/utils.c
index fd0247d644..781071946c 100644
--- a/libswscale/utils.c
+++ b/libswscale/utils.c
@@ -1608,17 +1608,13 @@ SwsFilter *sws_getDefaultFilter(float lumaGBlur, float chromaGBlur,
filter->chrV = sws_getIdentityVec();
}
- if (!filter->lumH || !filter->lumV || !filter->chrH || !filter->chrV) {
- sws_freeVec(filter->lumH);
- sws_freeVec(filter->lumV);
- sws_freeVec(filter->chrH);
- sws_freeVec(filter->chrV);
- av_freep(&filter);
- return NULL;
- }
+ if (!filter->lumH || !filter->lumV || !filter->chrH || !filter->chrV)
+ goto fail;
if (chromaSharpen != 0.0) {
SwsVector *id = sws_getIdentityVec();
+ if (!id)
+ goto fail;
sws_scaleVec(filter->chrH, -chromaSharpen);
sws_scaleVec(filter->chrV, -chromaSharpen);
sws_addVec(filter->chrH, id);
@@ -1628,6 +1624,8 @@ SwsFilter *sws_getDefaultFilter(float lumaGBlur, float chromaGBlur,
if (lumaSharpen != 0.0) {
SwsVector *id = sws_getIdentityVec();
+ if (!id)
+ goto fail;
sws_scaleVec(filter->lumH, -lumaSharpen);
sws_scaleVec(filter->lumV, -lumaSharpen);
sws_addVec(filter->lumH, id);
@@ -1652,6 +1650,14 @@ SwsFilter *sws_getDefaultFilter(float lumaGBlur, float chromaGBlur,
sws_printVec2(filter->lumH, NULL, AV_LOG_DEBUG);
return filter;
+
+fail:
+ sws_freeVec(filter->lumH);
+ sws_freeVec(filter->lumV);
+ sws_freeVec(filter->chrH);
+ sws_freeVec(filter->chrV);
+ av_freep(&filter);
+ return NULL;
}
SwsVector *sws_allocVec(int length)