diff --git a/libavfilter/af_channelmap.c b/libavfilter/af_channelmap.c
index c3454c5b69823e1a321a84b2e3b976ccab443e6c..2a43c12af2037e358106008b0740b965f15cb786 100644
--- a/libavfilter/af_channelmap.c
+++ b/libavfilter/af_channelmap.c
@@ -93,6 +93,8 @@ static int get_channel_idx(char **map, int *ch, char delim, int max_ch)
     int n = 0;
     if (!next && delim == '-')
         return AVERROR(EINVAL);
+    if (!*map)
+        return AVERROR(EINVAL);
     len = strlen(*map);
     sscanf(*map, "%d%n", ch, &n);
     if (n != len)