mbox series

[FFmpeg-devel,v2,00/11] libavformat/asf: fix handling of byte array length values

Message ID pull.12.v2.ffstaging.FFmpeg.1651916204.ffmpegagent@gmail.com
Headers show
Series libavformat/asf: fix handling of byte array length values | expand

Message

Aman Karmani May 7, 2022, 9:36 a.m. UTC
The spec allows attachment sizes of up to UINT32_MAX while we can handle
only sizes up to INT32_MAX (in downstream code)

The debug.assert in get_tag didn't really address this, and truncating the
value_len in calling methods cannot be used because the length value is
required in order to continue parsing. This adds a check with log message in
ff_asf_handle_byte_array to handle those (rare) cases.

v2: Rebased & PING

softworkz (11):
  libavformat/asf: fix handling of byte array length values
  libavformat/asfdec: fix get_value return type and add checks for
  libavformat/asfdec: fix type of value_len
  libavformat/asfdec: fixing get_tag
  libavformat/asfdec: implement parsing of GUID values
  libavformat/asfdec: remove unused parameters
  libavformat/asfdec: fix macro definition and use
  libavformat/asfdec: remove variable redefinition in inner scope
  libavformat/asfdec: ensure variables are initialized
  libavformat/asfdec: fix parameter type in asf_read_stream_propertie()
  libavformat/asfdec: fix variable types and add checks for unsupported
    values

 libavformat/asf.c      |  12 +-
 libavformat/asf.h      |   2 +-
 libavformat/asfdec_f.c | 349 ++++++++++++++++++++++++++---------------
 3 files changed, 232 insertions(+), 131 deletions(-)


base-commit: f3b7ba21ba49b32b4476a8c7c5a9bcdad15e3943
Published-As: https://github.com/ffstaging/FFmpeg/releases/tag/pr-ffstaging-12%2Fsoftworkz%2Fmaster-upstream_asf_4-v2
Fetch-It-Via: git fetch https://github.com/ffstaging/FFmpeg pr-ffstaging-12/softworkz/master-upstream_asf_4-v2
Pull-Request: https://github.com/ffstaging/FFmpeg/pull/12

Range-diff vs v1:

  1:  1e8c0fa058 =  1:  0056a93a34 libavformat/asf: fix handling of byte array length values
  2:  b5be0046e9 =  2:  a35b7c87d4 libavformat/asfdec: fix get_value return type and add checks for
  3:  c8119dad11 =  3:  b8039dc4cf libavformat/asfdec: fix type of value_len
  4:  3528d46886 =  4:  6e19df6e89 libavformat/asfdec: fixing get_tag
  5:  dc5a56662c =  5:  0f3c417efe libavformat/asfdec: implement parsing of GUID values
  6:  9988ecc6d2 =  6:  3bee11e40f libavformat/asfdec: remove unused parameters
  7:  3b5695c25b =  7:  ca9bbc79de libavformat/asfdec: fix macro definition and use
  8:  f1af8c82fc =  8:  238290bbce libavformat/asfdec: remove variable redefinition in inner scope
  9:  2214e02e7e =  9:  654e44d526 libavformat/asfdec: ensure variables are initialized
 10:  b60e0bcc29 = 10:  d461f039d2 libavformat/asfdec: fix parameter type in asf_read_stream_propertie()
 11:  da268b909b = 11:  f606f322bb libavformat/asfdec: fix variable types and add checks for unsupported values