diff --git a/libswscale/utils.c b/libswscale/utils.c
index 03e9463773..81da98d651 100644
--- a/libswscale/utils.c
+++ b/libswscale/utils.c
@@ -1435,7 +1435,12 @@ SwsVector *sws_getGaussianVec(double variance, double quality)
     const int length = (int)(variance * quality + 0.5) | 1;
     int i;
     double middle  = (length - 1) * 0.5;
-    SwsVector *vec = sws_allocVec(length);
+    SwsVector *vec;
+
+    if(variance < 0 || quality < 0)
+        return NULL;
+
+    vec = sws_allocVec(length);
 
     if (!vec)
         return NULL;