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

ffserver.c:1923:1: start of procedure open_input_stream()
1921. }
1922. 
1923. static int open_input_stream(HTTPContext *c, const char *info)
      ^
1924. {
1925.     char buf[128];

ffserver.c:1932:9: Taking true branch
1930. 
1931.     /* find file name */
1932.     if (c->stream->feed) {
              ^
1933.         strcpy(input_filename, c->stream->feed->feed_filename);
1934.         buf_size = FFM_PACKET_SIZE;

ffserver.c:1933:9: 
1931.     /* find file name */
1932.     if (c->stream->feed) {
1933.         strcpy(input_filename, c->stream->feed->feed_filename);
              ^
1934.         buf_size = FFM_PACKET_SIZE;
1935.         /* compute position (absolute time) */

ffserver.c:1934:9: 
1932.     if (c->stream->feed) {
1933.         strcpy(input_filename, c->stream->feed->feed_filename);
1934.         buf_size = FFM_PACKET_SIZE;
              ^
1935.         /* compute position (absolute time) */
1936.         if (find_info_tag(buf, sizeof(buf), "date", info)) {

ffserver.c:1936:13: Taking false branch
1934.         buf_size = FFM_PACKET_SIZE;
1935.         /* compute position (absolute time) */
1936.         if (find_info_tag(buf, sizeof(buf), "date", info)) {
                  ^
1937.             stream_pos = parse_date(buf, 0);
1938.             if (stream_pos == INT64_MIN)

ffserver.c:1940:20: Taking true branch
1938.             if (stream_pos == INT64_MIN)
1939.                 return -1;
1940.         } else if (find_info_tag(buf, sizeof(buf), "buffer", info)) {
                         ^
1941.             int prebuffer = strtol(buf, 0, 10);
1942.             stream_pos = av_gettime() - prebuffer * (int64_t)1000000;

ffserver.c:1941:13: 
1939.                 return -1;
1940.         } else if (find_info_tag(buf, sizeof(buf), "buffer", info)) {
1941.             int prebuffer = strtol(buf, 0, 10);
                  ^
1942.             stream_pos = av_gettime() - prebuffer * (int64_t)1000000;
1943.         } else

ffserver.c:1942:13: Skipping av_gettime(): empty list of specs
1940.         } else if (find_info_tag(buf, sizeof(buf), "buffer", info)) {
1941.             int prebuffer = strtol(buf, 0, 10);
1942.             stream_pos = av_gettime() - prebuffer * (int64_t)1000000;
                  ^
1943.         } else
1944.             stream_pos = av_gettime() - c->stream->prebuffer * (int64_t)1000;

ffserver.c:1956:9: Taking false branch
1954.             stream_pos = 0;
1955.     }
1956.     if (input_filename[0] == '\0')
              ^
1957.         return -1;
1958. 

ffserver.c:1966:9: 
1964. 
1965.     /* open stream */
1966.     if ((ret = av_open_input_file(&s, input_filename, c->stream->ifmt,
              ^
1967.                                   buf_size, c->stream->ap_in)) < 0) {
1968.         http_log("could not open %s: %d\n", input_filename, ret);

libavformat/utils.c:448:1: start of procedure av_open_input_file()
  446. #define PROBE_BUF_MAX (1<<20)
  447. 
  448. int av_open_input_file(AVFormatContext **ic_ptr, const char *filename,
       ^
  449.                        AVInputFormat *fmt,
  450.                        int buf_size,

libavformat/utils.c:454:5: 
  452. {
  453.     int err, probe_size;
  454.     AVProbeData probe_data, *pd = &probe_data;
           ^
  455.     ByteIOContext *pb = NULL;
  456. 

libavformat/utils.c:455:5: 
  453.     int err, probe_size;
  454.     AVProbeData probe_data, *pd = &probe_data;
  455.     ByteIOContext *pb = NULL;
           ^
  456. 
  457.     pd->filename = "";

libavformat/utils.c:457:5: 
  455.     ByteIOContext *pb = NULL;
  456. 
  457.     pd->filename = "";
           ^
  458.     if (filename)
  459.         pd->filename = filename;

libavformat/utils.c:458:9: Taking true branch
  456. 
  457.     pd->filename = "";
  458.     if (filename)
               ^
  459.         pd->filename = filename;
  460.     pd->buf = NULL;

libavformat/utils.c:459:9: 
  457.     pd->filename = "";
  458.     if (filename)
  459.         pd->filename = filename;
               ^
  460.     pd->buf = NULL;
  461.     pd->buf_size = 0;

libavformat/utils.c:460:5: 
  458.     if (filename)
  459.         pd->filename = filename;
  460.     pd->buf = NULL;
           ^
  461.     pd->buf_size = 0;
  462. 

libavformat/utils.c:461:5: 
  459.         pd->filename = filename;
  460.     pd->buf = NULL;
  461.     pd->buf_size = 0;
           ^
  462. 
  463.     if (!fmt) {

libavformat/utils.c:463:10: Taking false branch
  461.     pd->buf_size = 0;
  462. 
  463.     if (!fmt) {
                ^
  464.         /* guess format if no file can be opened */
  465.         fmt = av_probe_input_format(pd, 0);

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

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

libavformat/utils.c:500:10: Taking false branch
  498. 
  499.     /* if still no format found, error */
  500.     if (!fmt) {
                ^
  501.         err = AVERROR_NOFMT;
  502.         goto fail;

libavformat/utils.c:506:9: Taking false branch
  504. 
  505.     /* check filename in case an image number is expected */
  506.     if (fmt->flags & AVFMT_NEEDNUMBER) {
               ^
  507.         if (!av_filename_number_test(filename)) {
  508.             err = AVERROR_NUMEXPECTED;

libavformat/utils.c:512:5: Skipping av_open_input_stream(): empty list of specs
  510.         }
  511.     }
  512.     err = av_open_input_stream(ic_ptr, pb, filename, fmt, ap);
           ^
  513.     if (err)
  514.         goto fail;

libavformat/utils.c:513:9: Taking true branch
  511.     }
  512.     err = av_open_input_stream(ic_ptr, pb, filename, fmt, ap);
  513.     if (err)
               ^
  514.         goto fail;
  515.     return 0;

libavformat/utils.c:516:2: 
  514.         goto fail;
  515.     return 0;
  516.  fail:
        ^
  517.     av_freep(&pd->buf);
  518.     if (pb)

libavformat/utils.c:517:5: 
  515.     return 0;
  516.  fail:
  517.     av_freep(&pd->buf);
           ^
  518.     if (pb)
  519.         url_fclose(pb);

libavutil/mem.c:125:1: start of procedure av_freep()
    123. }
    124. 
    125. void av_freep(void *arg)
         ^
    126. {
    127.     void **ptr= (void**)arg;

libavutil/mem.c:127:5: 
    125. void av_freep(void *arg)
    126. {
    127.     void **ptr= (void**)arg;
             ^
    128.     av_free(*ptr);
    129.     *ptr = NULL;

libavutil/mem.c:128:5: 
    126. {
    127.     void **ptr= (void**)arg;
    128.     av_free(*ptr);
             ^
    129.     *ptr = NULL;
    130. }

libavutil/mem.c:114:1: start of procedure av_free()
      112. }
      113. 
      114. void av_free(void *ptr)
           ^
      115. {
      116.     /* XXX: this test should not be needed on most libcs */

libavutil/mem.c:117:9: Taking false branch
      115. {
      116.     /* XXX: this test should not be needed on most libcs */
      117.     if (ptr)
                   ^
      118. #ifdef CONFIG_MEMALIGN_HACK
      119.         free((char*)ptr - ((char*)ptr)[-1]);

libavutil/mem.c:117:5: 
      115. {
      116.     /* XXX: this test should not be needed on most libcs */
      117.     if (ptr)
               ^
      118. #ifdef CONFIG_MEMALIGN_HACK
      119.         free((char*)ptr - ((char*)ptr)[-1]);

libavutil/mem.c:123:1: return from a call to av_free
      121.         free(ptr);
      122. #endif
      123. }
           ^
      124. 
      125. void av_freep(void *arg)

libavutil/mem.c:129:5: 
    127.     void **ptr= (void**)arg;
    128.     av_free(*ptr);
    129.     *ptr = NULL;
             ^
    130. }
    131. 

libavutil/mem.c:130:1: return from a call to av_freep
    128.     av_free(*ptr);
    129.     *ptr = NULL;
    130. }
         ^
    131. 
    132. void *av_mallocz(unsigned int size)

libavformat/utils.c:518:9: Taking false branch
  516.  fail:
  517.     av_freep(&pd->buf);
  518.     if (pb)
               ^
  519.         url_fclose(pb);
  520.     *ic_ptr = NULL;

libavformat/utils.c:520:5: 
  518.     if (pb)
  519.         url_fclose(pb);
  520.     *ic_ptr = NULL;
           ^
  521.     return err;
  522. 

libavformat/utils.c:521:5: 
  519.         url_fclose(pb);
  520.     *ic_ptr = NULL;
  521.     return err;
           ^
  522. 
  523. }

libavformat/utils.c:523:1: return from a call to av_open_input_file
  521.     return err;
  522. 
  523. }
       ^
  524. 
  525. /*******************************************************/

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

ffserver.c:1971:5: 
1969.         return -1;
1970.     }
1971.     s->flags |= AVFMT_FLAG_GENPTS;
          ^
1972.     c->fmt_in = s;
1973.     av_find_stream_info(c->fmt_in);
