Message ID | 20220131231334.29017-1-cus@passwd.hu |
---|---|
State | Accepted |
Commit | 8a9d3d3dec74568a1a7f226dab3a779cd0bfc079 |
Headers | show |
Series | [FFmpeg-devel] avformat/imf_cpl: do not use filesize when reading XML file | expand |
Context | Check | Description |
---|---|---|
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
andriy/make_ppc | success | Make finished |
andriy/make_fate_ppc | success | Make fate finished |
andriy/make_aarch64_jetson | success | Make finished |
andriy/make_fate_aarch64_jetson | success | Make fate finished |
andriy/make_armv7_RPi4 | success | Make finished |
andriy/make_fate_armv7_RPi4 | success | Make fate finished |
Works for me. There are several other IMF-related patches waiting, some of them rather trivial. Should they be combined and/or merged together? On Mon, Jan 31, 2022 at 3:13 PM Marton Balint <cus@passwd.hu> wrote: > > Similar to the earlier patch applied to imfdec. > > Signed-off-by: Marton Balint <cus@passwd.hu> > --- > libavformat/imf_cpl.c | 13 +++++-------- > 1 file changed, 5 insertions(+), 8 deletions(-) > > diff --git a/libavformat/imf_cpl.c b/libavformat/imf_cpl.c > index f2ad9c05d6..102a6b4549 100644 > --- a/libavformat/imf_cpl.c > +++ b/libavformat/imf_cpl.c > @@ -797,13 +797,11 @@ int ff_imf_parse_cpl(AVIOContext *in, FFIMFCPL **cpl) > AVBPrint buf; > xmlDoc *doc = NULL; > int ret = 0; > - int64_t filesize = 0; > > - filesize = avio_size(in); > - filesize = filesize > 0 ? filesize : 8192; > - av_bprint_init(&buf, filesize + 1, AV_BPRINT_SIZE_UNLIMITED); > - ret = avio_read_to_bprint(in, &buf, UINT_MAX - 1); > - if (ret < 0 || !avio_feof(in) || buf.len == 0) { > + av_bprint_init(&buf, 0, INT_MAX); // xmlReadMemory uses integer length > + > + ret = avio_read_to_bprint(in, &buf, SIZE_MAX); > + if (ret < 0 || !avio_feof(in)) { > av_log(NULL, AV_LOG_ERROR, "Cannot read IMF CPL\n"); > if (ret == 0) > ret = AVERROR_INVALIDDATA; > @@ -812,8 +810,7 @@ int ff_imf_parse_cpl(AVIOContext *in, FFIMFCPL **cpl) > > LIBXML_TEST_VERSION > > - filesize = buf.len; > - doc = xmlReadMemory(buf.str, filesize, NULL, NULL, 0); > + doc = xmlReadMemory(buf.str, buf.len, NULL, NULL, 0); > if (!doc) { > av_log(NULL, > AV_LOG_ERROR, > -- > 2.31.1 > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
diff --git a/libavformat/imf_cpl.c b/libavformat/imf_cpl.c index f2ad9c05d6..102a6b4549 100644 --- a/libavformat/imf_cpl.c +++ b/libavformat/imf_cpl.c @@ -797,13 +797,11 @@ int ff_imf_parse_cpl(AVIOContext *in, FFIMFCPL **cpl) AVBPrint buf; xmlDoc *doc = NULL; int ret = 0; - int64_t filesize = 0; - filesize = avio_size(in); - filesize = filesize > 0 ? filesize : 8192; - av_bprint_init(&buf, filesize + 1, AV_BPRINT_SIZE_UNLIMITED); - ret = avio_read_to_bprint(in, &buf, UINT_MAX - 1); - if (ret < 0 || !avio_feof(in) || buf.len == 0) { + av_bprint_init(&buf, 0, INT_MAX); // xmlReadMemory uses integer length + + ret = avio_read_to_bprint(in, &buf, SIZE_MAX); + if (ret < 0 || !avio_feof(in)) { av_log(NULL, AV_LOG_ERROR, "Cannot read IMF CPL\n"); if (ret == 0) ret = AVERROR_INVALIDDATA; @@ -812,8 +810,7 @@ int ff_imf_parse_cpl(AVIOContext *in, FFIMFCPL **cpl) LIBXML_TEST_VERSION - filesize = buf.len; - doc = xmlReadMemory(buf.str, filesize, NULL, NULL, 0); + doc = xmlReadMemory(buf.str, buf.len, NULL, NULL, 0); if (!doc) { av_log(NULL, AV_LOG_ERROR,
Similar to the earlier patch applied to imfdec. Signed-off-by: Marton Balint <cus@passwd.hu> --- libavformat/imf_cpl.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-)