diff --git a/libavutil/opt.c b/libavutil/opt.c
index 6785a087415183c2db50bdbd85efa1156e84a1c1..b3435e0f0e77999dd43f18b963701a01072d3939 100644
--- a/libavutil/opt.c
+++ b/libavutil/opt.c
@@ -119,6 +119,8 @@ static int set_string_binary(void *obj, const AVOption *o, const char *val, uint
     len /= 2;
 
     ptr = bin = av_malloc(len);
+    if (!ptr)
+        return AVERROR(ENOMEM);
     while (*val) {
         int a = hexchar2int(*val++);
         int b = hexchar2int(*val++);