diff --git a/libavfilter/f_sendcmd.c b/libavfilter/f_sendcmd.c
index 7081de815d3da65ef6bb3b5e5c53552f0bd26a71..9f1704586e143688fc52521340be789bf23cf34b 100644
--- a/libavfilter/f_sendcmd.c
+++ b/libavfilter/f_sendcmd.c
@@ -398,8 +398,10 @@ static av_cold int init(AVFilterContext *ctx, const char *args)
 
         /* create a 0-terminated string based on the read file */
         buf = av_malloc(file_bufsize + 1);
-        if (!buf)
+        if (!buf) {
+            av_file_unmap(file_buf, file_bufsize);
             return AVERROR(ENOMEM);
+        }
         memcpy(buf, file_buf, file_bufsize);
         buf[file_bufsize] = 0;
         av_file_unmap(file_buf, file_bufsize);