diff --git a/libavformat/sapdec.c b/libavformat/sapdec.c
index fe7bd825f20fc8c90872395dffb83007a59d6643..dbef1d2beee6bd585cd87f574d1cbeb2d693e432 100644
--- a/libavformat/sapdec.c
+++ b/libavformat/sapdec.c
@@ -20,6 +20,7 @@
  */
 
 #include "avformat.h"
+#include "libavutil/avassert.h"
 #include "libavutil/avstring.h"
 #include "libavutil/intreadwrite.h"
 #include "network.h"
@@ -158,6 +159,11 @@ static int sap_read_header(AVFormatContext *s)
     sap->sdp_ctx->max_delay = s->max_delay;
     sap->sdp_ctx->pb        = &sap->sdp_pb;
     sap->sdp_ctx->interrupt_callback = s->interrupt_callback;
+
+    av_assert0(!sap->sdp_ctx->codec_whitelist && !sap->sdp_ctx->format_whitelist);
+    sap->sdp_ctx-> codec_whitelist = av_strdup(s->codec_whitelist);
+    sap->sdp_ctx->format_whitelist = av_strdup(s->format_whitelist);
+
     ret = avformat_open_input(&sap->sdp_ctx, "temp.sdp", infmt, NULL);
     if (ret < 0)
         goto fail;