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

ffserver.c:1930:1: start of procedure open_input_stream()
1928. }
1929. 
1930. static int open_input_stream(HTTPContext *c, const char *info)
      ^
1931. {
1932.     char buf[128];

ffserver.c:1939:9: Taking true branch
1937. 
1938.     /* find file name */
1939.     if (c->stream->feed) {
              ^
1940.         strcpy(input_filename, c->stream->feed->feed_filename);
1941.         buf_size = FFM_PACKET_SIZE;

ffserver.c:1940:9: 
1938.     /* find file name */
1939.     if (c->stream->feed) {
1940.         strcpy(input_filename, c->stream->feed->feed_filename);
              ^
1941.         buf_size = FFM_PACKET_SIZE;
1942.         /* compute position (absolute time) */

ffserver.c:1941:9: 
1939.     if (c->stream->feed) {
1940.         strcpy(input_filename, c->stream->feed->feed_filename);
1941.         buf_size = FFM_PACKET_SIZE;
              ^
1942.         /* compute position (absolute time) */
1943.         if (find_info_tag(buf, sizeof(buf), "date", info)) {

ffserver.c:1943:13: Taking false branch
1941.         buf_size = FFM_PACKET_SIZE;
1942.         /* compute position (absolute time) */
1943.         if (find_info_tag(buf, sizeof(buf), "date", info)) {
                  ^
1944.             stream_pos = parse_date(buf, 0);
1945.             if (stream_pos == INT64_MIN)

ffserver.c:1947:20: Taking false branch
1945.             if (stream_pos == INT64_MIN)
1946.                 return -1;
1947.         } else if (find_info_tag(buf, sizeof(buf), "buffer", info)) {
                         ^
1948.             int prebuffer = strtol(buf, 0, 10);
1949.             stream_pos = av_gettime() - prebuffer * (int64_t)1000000;

ffserver.c:1951:13: Skipping av_gettime(): empty list of specs
1949.             stream_pos = av_gettime() - prebuffer * (int64_t)1000000;
1950.         } else
1951.             stream_pos = av_gettime() - c->stream->prebuffer * (int64_t)1000;
                  ^
1952.     } else {
1953.         strcpy(input_filename, c->stream->feed_filename);

ffserver.c:1963:9: Taking false branch
1961.             stream_pos = 0;
1962.     }
1963.     if (input_filename[0] == '\0')
              ^
1964.         return -1;
1965. 

ffserver.c:1973:9: 
1971. 
1972.     /* open stream */
1973.     if ((ret = av_open_input_file(&s, input_filename, c->stream->ifmt,
              ^
1974.                                   buf_size, c->stream->ap_in)) < 0) {
1975.         http_log("could not open %s: %d\n", input_filename, ret);

libavformat/utils.c:511:1: start of procedure av_open_input_file()
  509. #define PROBE_BUF_MAX (1<<20)
  510. 
  511. int av_open_input_file(AVFormatContext **ic_ptr, const char *filename,
       ^
  512.                        AVInputFormat *fmt,
  513.                        int buf_size,

libavformat/utils.c:517:5: 
  515. {
  516.     int err, probe_size;
  517.     AVProbeData probe_data, *pd = &probe_data;
           ^
  518.     ByteIOContext *pb = NULL;
  519. 

libavformat/utils.c:518:5: 
  516.     int err, probe_size;
  517.     AVProbeData probe_data, *pd = &probe_data;
  518.     ByteIOContext *pb = NULL;
           ^
  519. 
  520.     pd->filename = "";

libavformat/utils.c:520:5: 
  518.     ByteIOContext *pb = NULL;
  519. 
  520.     pd->filename = "";
           ^
  521.     if (filename)
  522.         pd->filename = filename;

libavformat/utils.c:521:9: Taking true branch
  519. 
  520.     pd->filename = "";
  521.     if (filename)
               ^
  522.         pd->filename = filename;
  523.     pd->buf = NULL;

libavformat/utils.c:522:9: 
  520.     pd->filename = "";
  521.     if (filename)
  522.         pd->filename = filename;
               ^
  523.     pd->buf = NULL;
  524.     pd->buf_size = 0;

libavformat/utils.c:523:5: 
  521.     if (filename)
  522.         pd->filename = filename;
  523.     pd->buf = NULL;
           ^
  524.     pd->buf_size = 0;
  525. 

libavformat/utils.c:524:5: 
  522.         pd->filename = filename;
  523.     pd->buf = NULL;
  524.     pd->buf_size = 0;
           ^
  525. 
  526.     if (!fmt) {

libavformat/utils.c:526:10: Taking false branch
  524.     pd->buf_size = 0;
  525. 
  526.     if (!fmt) {
                ^
  527.         /* guess format if no file can be opened */
  528.         fmt = av_probe_input_format(pd, 0);

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

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

libavformat/utils.c:563:10: Taking false branch
  561. 
  562.     /* if still no format found, error */
  563.     if (!fmt) {
                ^
  564.         err = AVERROR_NOFMT;
  565.         goto fail;

libavformat/utils.c:569:9: Taking false branch
  567. 
  568.     /* check filename in case an image number is expected */
  569.     if (fmt->flags & AVFMT_NEEDNUMBER) {
               ^
  570.         if (!av_filename_number_test(filename)) {
  571.             err = AVERROR_NUMEXPECTED;

libavformat/utils.c:575:5: Skipping av_open_input_stream(): empty list of specs
  573.         }
  574.     }
  575.     err = av_open_input_stream(ic_ptr, pb, filename, fmt, ap);
           ^
  576.     if (err)
  577.         goto fail;

libavformat/utils.c:576:9: Taking true branch
  574.     }
  575.     err = av_open_input_stream(ic_ptr, pb, filename, fmt, ap);
  576.     if (err)
               ^
  577.         goto fail;
  578.     return 0;

libavformat/utils.c:579:2: 
  577.         goto fail;
  578.     return 0;
  579.  fail:
        ^
  580.     av_freep(&pd->buf);
  581.     if (pb)

libavformat/utils.c:580:5: 
  578.     return 0;
  579.  fail:
  580.     av_freep(&pd->buf);
           ^
  581.     if (pb)
  582.         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:581:9: Taking false branch
  579.  fail:
  580.     av_freep(&pd->buf);
  581.     if (pb)
               ^
  582.         url_fclose(pb);
  583.     *ic_ptr = NULL;

libavformat/utils.c:583:5: 
  581.     if (pb)
  582.         url_fclose(pb);
  583.     *ic_ptr = NULL;
           ^
  584.     return err;
  585. 

libavformat/utils.c:584:5: 
  582.         url_fclose(pb);
  583.     *ic_ptr = NULL;
  584.     return err;
           ^
  585. 
  586. }

libavformat/utils.c:586:1: return from a call to av_open_input_file
  584.     return err;
  585. 
  586. }
       ^
  587. 
  588. /*******************************************************/

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

ffserver.c:1978:5: 
1976.         return -1;
1977.     }
1978.     s->flags |= AVFMT_FLAG_GENPTS;
          ^
1979.     c->fmt_in = s;
1980.     av_find_stream_info(c->fmt_in);
