libavformat/rtspdec.c:183: error: Null Dereference
  pointer `null` is dereferenced by call to `rtsp_send_reply()` at line 183, column 9.

libavformat/rtspdec.c:169:1: start of procedure rtsp_read_announce()
167. }
168. 
169. static int rtsp_read_announce(AVFormatContext *s)
     ^
170. {
171.     RTSPState *rt             = s->priv_data;

libavformat/rtspdec.c:171:5: 
169. static int rtsp_read_announce(AVFormatContext *s)
170. {
171.     RTSPState *rt             = s->priv_data;
         ^
172.     RTSPMessageHeader request = { 0 };
173.     char sdp[4096];

libavformat/rtspdec.c:172:5: 
170. {
171.     RTSPState *rt             = s->priv_data;
172.     RTSPMessageHeader request = { 0 };
         ^
173.     char sdp[4096];
174.     int  ret;

libavformat/rtspdec.c:176:5: Skipping rtsp_read_request(): empty list of specs
174.     int  ret;
175. 
176.     ret = rtsp_read_request(s, &request, "ANNOUNCE");
         ^
177.     if (ret)
178.         return ret;

libavformat/rtspdec.c:177:9: Taking false branch
175. 
176.     ret = rtsp_read_request(s, &request, "ANNOUNCE");
177.     if (ret)
             ^
178.         return ret;
179.     rt->seq++;

libavformat/rtspdec.c:179:5: 
177.     if (ret)
178.         return ret;
179.     rt->seq++;
         ^
180.     if (strcmp(request.content_type, "application/sdp")) {
181.         av_log(s, AV_LOG_ERROR, "Unexpected content type %s\n",

libavformat/rtspdec.c:180:9: Taking true branch
178.         return ret;
179.     rt->seq++;
180.     if (strcmp(request.content_type, "application/sdp")) {
             ^
181.         av_log(s, AV_LOG_ERROR, "Unexpected content type %s\n",
182.                request.content_type);

libavformat/rtspdec.c:181:9: Skipping av_log(): empty list of specs
179.     rt->seq++;
180.     if (strcmp(request.content_type, "application/sdp")) {
181.         av_log(s, AV_LOG_ERROR, "Unexpected content type %s\n",
             ^
182.                request.content_type);
183.         rtsp_send_reply(s, RTSP_STATUS_SERVICE, NULL, request.seq);

libavformat/rtspdec.c:183:9: 
181.         av_log(s, AV_LOG_ERROR, "Unexpected content type %s\n",
182.                request.content_type);
183.         rtsp_send_reply(s, RTSP_STATUS_SERVICE, NULL, request.seq);
             ^
184.         return AVERROR_OPTION_NOT_FOUND;
185.     }

libavformat/rtspdec.c:94:1: start of procedure rtsp_send_reply()
  92. }
  93. 
  94. static int rtsp_send_reply(AVFormatContext *s, enum RTSPStatusCode code,
      ^
  95.                            const char *extracontent, uint16_t seq)
  96. {

libavformat/rtspdec.c:97:5: 
  95.                            const char *extracontent, uint16_t seq)
  96. {
  97.     RTSPState *rt = s->priv_data;
          ^
  98.     char message[4096];
  99.     int index = 0;

libavformat/rtspdec.c:99:5: 
   97.     RTSPState *rt = s->priv_data;
   98.     char message[4096];
   99.     int index = 0;
           ^
  100.     while (status_messages[index].code) {
  101.         if (status_messages[index].code == code) {

libavformat/rtspdec.c:100:12: Loop condition is true. Entering loop body
   98.     char message[4096];
   99.     int index = 0;
  100.     while (status_messages[index].code) {
                  ^
  101.         if (status_messages[index].code == code) {
  102.             snprintf(message, sizeof(message), "RTSP/1.0 %d %s\r\n",

libavformat/rtspdec.c:101:13: Taking false branch
   99.     int index = 0;
  100.     while (status_messages[index].code) {
  101.         if (status_messages[index].code == code) {
                   ^
  102.             snprintf(message, sizeof(message), "RTSP/1.0 %d %s\r\n",
  103.                      code, status_messages[index].message);

libavformat/rtspdec.c:106:9: 
  104.             break;
  105.         }
  106.         index++;
               ^
  107.     }
  108.     if (!status_messages[index].code)

libavformat/rtspdec.c:100:12: Loop condition is true. Entering loop body
   98.     char message[4096];
   99.     int index = 0;
  100.     while (status_messages[index].code) {
                  ^
  101.         if (status_messages[index].code == code) {
  102.             snprintf(message, sizeof(message), "RTSP/1.0 %d %s\r\n",

libavformat/rtspdec.c:101:13: Taking false branch
   99.     int index = 0;
  100.     while (status_messages[index].code) {
  101.         if (status_messages[index].code == code) {
                   ^
  102.             snprintf(message, sizeof(message), "RTSP/1.0 %d %s\r\n",
  103.                      code, status_messages[index].message);

libavformat/rtspdec.c:106:9: 
  104.             break;
  105.         }
  106.         index++;
               ^
  107.     }
  108.     if (!status_messages[index].code)

libavformat/rtspdec.c:100:12: Loop condition is true. Entering loop body
   98.     char message[4096];
   99.     int index = 0;
  100.     while (status_messages[index].code) {
                  ^
  101.         if (status_messages[index].code == code) {
  102.             snprintf(message, sizeof(message), "RTSP/1.0 %d %s\r\n",

libavformat/rtspdec.c:101:13: Taking false branch
   99.     int index = 0;
  100.     while (status_messages[index].code) {
  101.         if (status_messages[index].code == code) {
                   ^
  102.             snprintf(message, sizeof(message), "RTSP/1.0 %d %s\r\n",
  103.                      code, status_messages[index].message);

libavformat/rtspdec.c:106:9: 
  104.             break;
  105.         }
  106.         index++;
               ^
  107.     }
  108.     if (!status_messages[index].code)

libavformat/rtspdec.c:100:12: Loop condition is false. Leaving loop
   98.     char message[4096];
   99.     int index = 0;
  100.     while (status_messages[index].code) {
                  ^
  101.         if (status_messages[index].code == code) {
  102.             snprintf(message, sizeof(message), "RTSP/1.0 %d %s\r\n",

libavformat/rtspdec.c:108:10: Taking true branch
  106.         index++;
  107.     }
  108.     if (!status_messages[index].code)
                ^
  109.         return AVERROR(EINVAL);
  110.     av_strlcatf(message, sizeof(message), "CSeq: %d\r\n", seq);

libavformat/rtspdec.c:109:9: 
  107.     }
  108.     if (!status_messages[index].code)
  109.         return AVERROR(EINVAL);
               ^
  110.     av_strlcatf(message, sizeof(message), "CSeq: %d\r\n", seq);
  111.     av_strlcatf(message, sizeof(message), "Server: %s\r\n", LIBAVFORMAT_IDENT);

libavformat/rtspdec.c:119:1: return from a call to rtsp_send_reply
  117. 
  118.     return 0;
  119. }
       ^
  120. 
  121. static inline int check_sessionid(AVFormatContext *s,
