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

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

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

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

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

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

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

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

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

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

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

libavformat/utils.c:507:1: start of procedure av_open_input_file()
  505. #define PROBE_BUF_MAX (1<<20)
  506. 
  507. int av_open_input_file(AVFormatContext **ic_ptr, const char *filename,
       ^
  508.                        AVInputFormat *fmt,
  509.                        int buf_size,

libavformat/utils.c:513:5: 
  511. {
  512.     int err, probe_size;
  513.     AVProbeData probe_data, *pd = &probe_data;
           ^
  514.     ByteIOContext *pb = NULL;
  515. 

libavformat/utils.c:514:5: 
  512.     int err, probe_size;
  513.     AVProbeData probe_data, *pd = &probe_data;
  514.     ByteIOContext *pb = NULL;
           ^
  515. 
  516.     pd->filename = "";

libavformat/utils.c:516:5: 
  514.     ByteIOContext *pb = NULL;
  515. 
  516.     pd->filename = "";
           ^
  517.     if (filename)
  518.         pd->filename = filename;

libavformat/utils.c:517:9: Taking true branch
  515. 
  516.     pd->filename = "";
  517.     if (filename)
               ^
  518.         pd->filename = filename;
  519.     pd->buf = NULL;

libavformat/utils.c:518:9: 
  516.     pd->filename = "";
  517.     if (filename)
  518.         pd->filename = filename;
               ^
  519.     pd->buf = NULL;
  520.     pd->buf_size = 0;

libavformat/utils.c:519:5: 
  517.     if (filename)
  518.         pd->filename = filename;
  519.     pd->buf = NULL;
           ^
  520.     pd->buf_size = 0;
  521. 

libavformat/utils.c:520:5: 
  518.         pd->filename = filename;
  519.     pd->buf = NULL;
  520.     pd->buf_size = 0;
           ^
  521. 
  522.     if (!fmt) {

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

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

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

libavformat/utils.c:559:10: Taking false branch
  557. 
  558.     /* if still no format found, error */
  559.     if (!fmt) {
                ^
  560.         err = AVERROR_NOFMT;
  561.         goto fail;

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

libavformat/utils.c:571:5: Skipping av_open_input_stream(): empty list of specs
  569.         }
  570.     }
  571.     err = av_open_input_stream(ic_ptr, pb, filename, fmt, ap);
           ^
  572.     if (err)
  573.         goto fail;

libavformat/utils.c:572:9: Taking true branch
  570.     }
  571.     err = av_open_input_stream(ic_ptr, pb, filename, fmt, ap);
  572.     if (err)
               ^
  573.         goto fail;
  574.     return 0;

libavformat/utils.c:575:2: 
  573.         goto fail;
  574.     return 0;
  575.  fail:
        ^
  576.     av_freep(&pd->buf);
  577.     if (pb)

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

libavformat/utils.c:579:5: 
  577.     if (pb)
  578.         url_fclose(pb);
  579.     *ic_ptr = NULL;
           ^
  580.     return err;
  581. 

libavformat/utils.c:580:5: 
  578.         url_fclose(pb);
  579.     *ic_ptr = NULL;
  580.     return err;
           ^
  581. 
  582. }

libavformat/utils.c:582:1: return from a call to av_open_input_file
  580.     return err;
  581. 
  582. }
       ^
  583. 
  584. /*******************************************************/

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

ffserver.c:1974:5: 
1972.         return -1;
1973.     }
1974.     s->flags |= AVFMT_FLAG_GENPTS;
          ^
1975.     c->fmt_in = s;
1976.     av_find_stream_info(c->fmt_in);
