mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avformat/imf_cpl: do not use filesize when reading XML file
Similar to the earlier patch applied to imfdec. Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
parent
00692139c9
commit
8a9d3d3dec
@ -797,13 +797,11 @@ int ff_imf_parse_cpl(AVIOContext *in, FFIMFCPL **cpl)
|
|||||||
AVBPrint buf;
|
AVBPrint buf;
|
||||||
xmlDoc *doc = NULL;
|
xmlDoc *doc = NULL;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
int64_t filesize = 0;
|
|
||||||
|
|
||||||
filesize = avio_size(in);
|
av_bprint_init(&buf, 0, INT_MAX); // xmlReadMemory uses integer length
|
||||||
filesize = filesize > 0 ? filesize : 8192;
|
|
||||||
av_bprint_init(&buf, filesize + 1, AV_BPRINT_SIZE_UNLIMITED);
|
ret = avio_read_to_bprint(in, &buf, SIZE_MAX);
|
||||||
ret = avio_read_to_bprint(in, &buf, UINT_MAX - 1);
|
if (ret < 0 || !avio_feof(in)) {
|
||||||
if (ret < 0 || !avio_feof(in) || buf.len == 0) {
|
|
||||||
av_log(NULL, AV_LOG_ERROR, "Cannot read IMF CPL\n");
|
av_log(NULL, AV_LOG_ERROR, "Cannot read IMF CPL\n");
|
||||||
if (ret == 0)
|
if (ret == 0)
|
||||||
ret = AVERROR_INVALIDDATA;
|
ret = AVERROR_INVALIDDATA;
|
||||||
@ -812,8 +810,7 @@ int ff_imf_parse_cpl(AVIOContext *in, FFIMFCPL **cpl)
|
|||||||
|
|
||||||
LIBXML_TEST_VERSION
|
LIBXML_TEST_VERSION
|
||||||
|
|
||||||
filesize = buf.len;
|
doc = xmlReadMemory(buf.str, buf.len, NULL, NULL, 0);
|
||||||
doc = xmlReadMemory(buf.str, filesize, NULL, NULL, 0);
|
|
||||||
if (!doc) {
|
if (!doc) {
|
||||||
av_log(NULL,
|
av_log(NULL,
|
||||||
AV_LOG_ERROR,
|
AV_LOG_ERROR,
|
||||||
|
Loading…
Reference in New Issue
Block a user