[FFmpeg-trac] #8466(avformat:new): av_url_split violates RFC2396, fails to parse URLs

FFmpeg trac at avcodec.org
Fri Jan 10 09:38:43 EET 2020


#8466: av_url_split violates RFC2396, fails to parse URLs
-------------------------------------+------------------------------------
             Reporter:  aitte        |                    Owner:
                 Type:  defect       |                   Status:  new
             Priority:  normal       |                Component:  avformat
              Version:  unspecified  |               Resolution:
             Keywords:  http         |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+------------------------------------

Comment (by aitte):

 Alright. Here's the latest Git build's output:

 {{{
 INCORRECTLY PARSED BY FFMPEG:

 $ ffmpeg -i "https://key.vscdns.com?key_id=2&model_id=991011&&access_key="
 ffmpeg version git-2020-01-10-3ea7057 Copyright (c) 2000-2020 the FFmpeg
 developers
   built with gcc 9.2.1 (GCC) 20191125
   configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-
 fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-
 libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame
 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
 --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr
 --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack
 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2
 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-
 libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa
 --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx
 --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc
 --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
 --enable-amf
   libavutil      56. 38.100 / 56. 38.100
   libavcodec     58. 65.102 / 58. 65.102
   libavformat    58. 35.101 / 58. 35.101
   libavdevice    58.  9.103 / 58.  9.103
   libavfilter     7. 70.101 /  7. 70.101
   libswscale      5.  6.100 /  5.  6.100
   libswresample   3.  6.100 /  3.  6.100
   libpostproc    55.  6.100 / 55.  6.100
 [https @ 00000229894b92c0] HTTP error 400 Bad Request
 https://key.vscdns.com?key_id=2&model_id=991011&&access_key=: Server
 returned 400 Bad Request


 MANUALLY REWRITTEN TO MAKE FFMPEG UNDERSTAND:

 $ ffmpeg -i "https://key.vscdns.com?key_id=2&model_id=991011&&access_key="
 ffmpeg version git-2020-01-10-3ea7057 Copyright (c) 2000-2020 the FFmpeg
 developers
   built with gcc 9.2.1 (GCC) 20191125
   configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-
 fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-
 libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame
 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
 --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr
 --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack
 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2
 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-
 libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa
 --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx
 --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc
 --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
 --enable-amf
   libavutil      56. 38.100 / 56. 38.100
   libavcodec     58. 65.102 / 58. 65.102
   libavformat    58. 35.101 / 58. 35.101
   libavdevice    58.  9.103 / 58.  9.103
   libavfilter     7. 70.101 /  7. 70.101
   libswscale      5.  6.100 /  5.  6.100
   libswresample   3.  6.100 /  3.  6.100
   libpostproc    55.  6.100 / 55.  6.100
 [https @ 00000205c0b592c0] HTTP error 403 Forbidden
 https://key.vscdns.com/?key_id=2&model_id=991011&&access_key=: Server
 returned 403 Forbidden (access denied)
 }}}

 My previous reply above has located the bug to both the URL parser (it can
 be fixed in there), and the HTTP GET connection library (it can be fixed
 there too). Where it's fixed doesn't matter, and it would be most trivial
 to fix it via the URL parser (av_url_split).

--
Ticket URL: <https://trac.ffmpeg.org/ticket/8466#comment:3>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list