ffserver.c:1985: error: Null Dereference
  pointer `s` last assigned on line 1980 could be null and is dereferenced at line 1985, column 5.

ffserver.c:1937:1: start of procedure open_input_stream()
1935. }
1936. 
1937. static int open_input_stream(HTTPContext *c, const char *info)
      ^
1938. {
1939.     char buf[128];

ffserver.c:1946:9: Taking true branch
1944. 
1945.     /* find file name */
1946.     if (c->stream->feed) {
              ^
1947.         strcpy(input_filename, c->stream->feed->feed_filename);
1948.         buf_size = FFM_PACKET_SIZE;

ffserver.c:1947:9: 
1945.     /* find file name */
1946.     if (c->stream->feed) {
1947.         strcpy(input_filename, c->stream->feed->feed_filename);
              ^
1948.         buf_size = FFM_PACKET_SIZE;
1949.         /* compute position (absolute time) */

ffserver.c:1948:9: 
1946.     if (c->stream->feed) {
1947.         strcpy(input_filename, c->stream->feed->feed_filename);
1948.         buf_size = FFM_PACKET_SIZE;
              ^
1949.         /* compute position (absolute time) */
1950.         if (find_info_tag(buf, sizeof(buf), "date", info)) {

ffserver.c:1950:13: Taking false branch
1948.         buf_size = FFM_PACKET_SIZE;
1949.         /* compute position (absolute time) */
1950.         if (find_info_tag(buf, sizeof(buf), "date", info)) {
                  ^
1951.             stream_pos = parse_date(buf, 0);
1952.             if (stream_pos == INT64_MIN)

ffserver.c:1954:20: Taking false branch
1952.             if (stream_pos == INT64_MIN)
1953.                 return -1;
1954.         } else if (find_info_tag(buf, sizeof(buf), "buffer", info)) {
                         ^
1955.             int prebuffer = strtol(buf, 0, 10);
1956.             stream_pos = av_gettime() - prebuffer * (int64_t)1000000;

ffserver.c:1958:13: Skipping av_gettime(): empty list of specs
1956.             stream_pos = av_gettime() - prebuffer * (int64_t)1000000;
1957.         } else
1958.             stream_pos = av_gettime() - c->stream->prebuffer * (int64_t)1000;
                  ^
1959.     } else {
1960.         strcpy(input_filename, c->stream->feed_filename);

ffserver.c:1970:9: Taking false branch
1968.             stream_pos = 0;
1969.     }
1970.     if (input_filename[0] == '\0')
              ^
1971.         return -1;
1972. 

ffserver.c:1980:9: 
1978. 
1979.     /* open stream */
1980.     if ((ret = av_open_input_file(&s, input_filename, c->stream->ifmt,
              ^
1981.                                   buf_size, c->stream->ap_in)) < 0) {
1982.         http_log("could not open %s: %d\n", input_filename, ret);

libavformat/utils.c:477:1: start of procedure av_open_input_file()
  475. #define PROBE_BUF_MAX (1<<20)
  476. 
  477. int av_open_input_file(AVFormatContext **ic_ptr, const char *filename,
       ^
  478.                        AVInputFormat *fmt,
  479.                        int buf_size,

libavformat/utils.c:483:5: 
  481. {
  482.     int err, probe_size;
  483.     AVProbeData probe_data, *pd = &probe_data;
           ^
  484.     ByteIOContext *pb = NULL;
  485. 

libavformat/utils.c:484:5: 
  482.     int err, probe_size;
  483.     AVProbeData probe_data, *pd = &probe_data;
  484.     ByteIOContext *pb = NULL;
           ^
  485. 
  486.     pd->filename = "";

libavformat/utils.c:486:5: 
  484.     ByteIOContext *pb = NULL;
  485. 
  486.     pd->filename = "";
           ^
  487.     if (filename)
  488.         pd->filename = filename;

libavformat/utils.c:487:9: Taking true branch
  485. 
  486.     pd->filename = "";
  487.     if (filename)
               ^
  488.         pd->filename = filename;
  489.     pd->buf = NULL;

libavformat/utils.c:488:9: 
  486.     pd->filename = "";
  487.     if (filename)
  488.         pd->filename = filename;
               ^
  489.     pd->buf = NULL;
  490.     pd->buf_size = 0;

libavformat/utils.c:489:5: 
  487.     if (filename)
  488.         pd->filename = filename;
  489.     pd->buf = NULL;
           ^
  490.     pd->buf_size = 0;
  491. 

libavformat/utils.c:490:5: 
  488.         pd->filename = filename;
  489.     pd->buf = NULL;
  490.     pd->buf_size = 0;
           ^
  491. 
  492.     if (!fmt) {

libavformat/utils.c:492:10: Taking false branch
  490.     pd->buf_size = 0;
  491. 
  492.     if (!fmt) {
                ^
  493.         /* guess format if no file can be opened */
  494.         fmt = av_probe_input_format(pd, 0);

libavformat/utils.c:499:10: Taking false branch
  497.     /* Do not open file if the format does not need it. XXX: specific
  498.        hack needed to handle RTSP/TCP */
  499.     if (!fmt || !(fmt->flags & AVFMT_NOFILE)) {
                ^
  500.         /* if no file needed do not try to open one */
  501.         if ((err=url_fopen(&pb, filename, URL_RDONLY)) < 0) {

libavformat/utils.c:499:19: Taking false branch
  497.     /* Do not open file if the format does not need it. XXX: specific
  498.        hack needed to handle RTSP/TCP */
  499.     if (!fmt || !(fmt->flags & AVFMT_NOFILE)) {
                         ^
  500.         /* if no file needed do not try to open one */
  501.         if ((err=url_fopen(&pb, filename, URL_RDONLY)) < 0) {

libavformat/utils.c:529:10: Taking false branch
  527. 
  528.     /* if still no format found, error */
  529.     if (!fmt) {
                ^
  530.         err = AVERROR_NOFMT;
  531.         goto fail;

libavformat/utils.c:535:9: Taking false branch
  533. 
  534.     /* check filename in case an image number is expected */
  535.     if (fmt->flags & AVFMT_NEEDNUMBER) {
               ^
  536.         if (!av_filename_number_test(filename)) {
  537.             err = AVERROR_NUMEXPECTED;

libavformat/utils.c:541:5: Skipping av_open_input_stream(): empty list of specs
  539.         }
  540.     }
  541.     err = av_open_input_stream(ic_ptr, pb, filename, fmt, ap);
           ^
  542.     if (err)
  543.         goto fail;

libavformat/utils.c:542:9: Taking true branch
  540.     }
  541.     err = av_open_input_stream(ic_ptr, pb, filename, fmt, ap);
  542.     if (err)
               ^
  543.         goto fail;
  544.     return 0;

libavformat/utils.c:545:2: 
  543.         goto fail;
  544.     return 0;
  545.  fail:
        ^
  546.     av_freep(&pd->buf);
  547.     if (pb)

libavformat/utils.c:546:5: 
  544.     return 0;
  545.  fail:
  546.     av_freep(&pd->buf);
           ^
  547.     if (pb)
  548.         url_fclose(pb);

libavutil/mem.c:132:1: start of procedure av_freep()
    130. }
    131. 
    132. void av_freep(void *arg)
         ^
    133. {
    134.     void **ptr= (void**)arg;

libavutil/mem.c:134:5: 
    132. void av_freep(void *arg)
    133. {
    134.     void **ptr= (void**)arg;
             ^
    135.     av_free(*ptr);
    136.     *ptr = NULL;

libavutil/mem.c:135:5: 
    133. {
    134.     void **ptr= (void**)arg;
    135.     av_free(*ptr);
             ^
    136.     *ptr = NULL;
    137. }

libavutil/mem.c:121:1: start of procedure av_free()
      119. }
      120. 
      121. void av_free(void *ptr)
           ^
      122. {
      123.     /* XXX: this test should not be needed on most libcs */

libavutil/mem.c:124:9: Taking false branch
      122. {
      123.     /* XXX: this test should not be needed on most libcs */
      124.     if (ptr)
                   ^
      125. #if CONFIG_MEMALIGN_HACK
      126.         free((char*)ptr - ((char*)ptr)[-1]);

libavutil/mem.c:124:5: 
      122. {
      123.     /* XXX: this test should not be needed on most libcs */
      124.     if (ptr)
               ^
      125. #if CONFIG_MEMALIGN_HACK
      126.         free((char*)ptr - ((char*)ptr)[-1]);

libavutil/mem.c:130:1: return from a call to av_free
      128.         free(ptr);
      129. #endif
      130. }
           ^
      131. 
      132. void av_freep(void *arg)

libavutil/mem.c:136:5: 
    134.     void **ptr= (void**)arg;
    135.     av_free(*ptr);
    136.     *ptr = NULL;
             ^
    137. }
    138. 

libavutil/mem.c:137:1: return from a call to av_freep
    135.     av_free(*ptr);
    136.     *ptr = NULL;
    137. }
         ^
    138. 
    139. void *av_mallocz(unsigned int size)

libavformat/utils.c:547:9: Taking false branch
  545.  fail:
  546.     av_freep(&pd->buf);
  547.     if (pb)
               ^
  548.         url_fclose(pb);
  549.     *ic_ptr = NULL;

libavformat/utils.c:549:5: 
  547.     if (pb)
  548.         url_fclose(pb);
  549.     *ic_ptr = NULL;
           ^
  550.     return err;
  551. 

libavformat/utils.c:550:5: 
  548.         url_fclose(pb);
  549.     *ic_ptr = NULL;
  550.     return err;
           ^
  551. 
  552. }

libavformat/utils.c:552:1: return from a call to av_open_input_file
  550.     return err;
  551. 
  552. }
       ^
  553. 
  554. /*******************************************************/

ffserver.c:1980:9: Taking false branch
1978. 
1979.     /* open stream */
1980.     if ((ret = av_open_input_file(&s, input_filename, c->stream->ifmt,
              ^
1981.                                   buf_size, c->stream->ap_in)) < 0) {
1982.         http_log("could not open %s: %d\n", input_filename, ret);

ffserver.c:1985:5: 
1983.         return -1;
1984.     }
1985.     s->flags |= AVFMT_FLAG_GENPTS;
          ^
1986.     c->fmt_in = s;
1987.     av_find_stream_info(c->fmt_in);
