diff --git a/libavformat/hls.c b/libavformat/hls.c
index ebd3f951d0f7a47e224dcaeec96af0189b56ec6e..ff95519fb3b14576c3df30b0904fb482732de87b 100644
--- a/libavformat/hls.c
+++ b/libavformat/hls.c
@@ -1300,7 +1300,7 @@ static int save_avio_options(AVFormatContext *s)
     int ret = 0;
 
     while (*opt) {
-        if (av_opt_get(s->pb, *opt, AV_OPT_SEARCH_CHILDREN, &buf) >= 0) {
+        if (av_opt_get(s->pb, *opt, AV_OPT_SEARCH_CHILDREN | AV_OPT_ALLOW_NULL, &buf) >= 0) {
             ret = av_dict_set(&c->avio_opts, *opt, buf,
                               AV_DICT_DONT_STRDUP_VAL);
             if (ret < 0)