diff --git a/libavutil/eval.c b/libavutil/eval.c
index ea318560dea76744d28b95776765c260185aa1de..1dfcbef7bb3319dde3895706edc204e104b63de8 100644
--- a/libavutil/eval.c
+++ b/libavutil/eval.c
@@ -692,6 +692,10 @@ int av_expr_parse(AVExpr **expr, const char *s,
         goto end;
     }
     e->var= av_mallocz(sizeof(double) *VARS);
+    if (!e->var) {
+        ret = AVERROR(ENOMEM);
+        goto end;
+    }
     *expr = e;
     e = NULL;
 end: