avformat/aadec: Check for scanf() failure
Fixes: use of uninitialized variables Fixes: blank.aa Found-by: Chamal De Silva <chamal.desilva@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
9570322a2d
commit
ed188f6dcd
@ -85,6 +85,7 @@ static int aa_read_header(AVFormatContext *s)
|
|||||||
AADemuxContext *c = s->priv_data;
|
AADemuxContext *c = s->priv_data;
|
||||||
AVIOContext *pb = s->pb;
|
AVIOContext *pb = s->pb;
|
||||||
AVStream *st;
|
AVStream *st;
|
||||||
|
int ret;
|
||||||
|
|
||||||
/* parse .aa header */
|
/* parse .aa header */
|
||||||
avio_skip(pb, 4); // file size
|
avio_skip(pb, 4); // file size
|
||||||
@ -118,8 +119,12 @@ static int aa_read_header(AVFormatContext *s)
|
|||||||
header_seed = atoi(val);
|
header_seed = atoi(val);
|
||||||
} else if (!strcmp(key, "HeaderKey")) { // this looks like "1234567890 1234567890 1234567890 1234567890"
|
} else if (!strcmp(key, "HeaderKey")) { // this looks like "1234567890 1234567890 1234567890 1234567890"
|
||||||
av_log(s, AV_LOG_DEBUG, "HeaderKey is <%s>\n", val);
|
av_log(s, AV_LOG_DEBUG, "HeaderKey is <%s>\n", val);
|
||||||
sscanf(val, "%"SCNu32"%"SCNu32"%"SCNu32"%"SCNu32,
|
|
||||||
|
ret = sscanf(val, "%"SCNu32"%"SCNu32"%"SCNu32"%"SCNu32,
|
||||||
&header_key_part[0], &header_key_part[1], &header_key_part[2], &header_key_part[3]);
|
&header_key_part[0], &header_key_part[1], &header_key_part[2], &header_key_part[3]);
|
||||||
|
if (ret != 4)
|
||||||
|
return AVERROR_INVALIDDATA;
|
||||||
|
|
||||||
for (idx = 0; idx < 4; idx++) {
|
for (idx = 0; idx < 4; idx++) {
|
||||||
AV_WB32(&header_key[idx * 4], header_key_part[idx]); // convert each part to BE!
|
AV_WB32(&header_key[idx * 4], header_key_part[idx]); // convert each part to BE!
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user