repositories
/
deb_ffmpeg.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Imported Debian version 2.5.0~trusty1.1
[deb_ffmpeg.git]
/
ffmpeg
/
libavformat
/
bethsoftvid.c
diff --git
a/ffmpeg/libavformat/bethsoftvid.c
b/ffmpeg/libavformat/bethsoftvid.c
index c98ff14df164d5961386a9992bdd224347ea5f1c..40a425271d10dc1aa72d84888b75df78b7a3e7d2 100644
(file)
--- a/
ffmpeg/libavformat/bethsoftvid.c
+++ b/
ffmpeg/libavformat/bethsoftvid.c
@@
-180,7
+180,6
@@
static int read_frame(BVID_DemuxContext *vid, AVIOContext *pb, AVPacket *pkt,
if ((ret = av_new_packet(pkt, vidbuf_nbytes)) < 0)
goto fail;
memcpy(pkt->data, vidbuf_start, vidbuf_nbytes);
if ((ret = av_new_packet(pkt, vidbuf_nbytes)) < 0)
goto fail;
memcpy(pkt->data, vidbuf_start, vidbuf_nbytes);
- av_free(vidbuf_start);
pkt->pos = position;
pkt->stream_index = vid->video_index;
pkt->pos = position;
pkt->stream_index = vid->video_index;
@@
-192,13
+191,17
@@
static int read_frame(BVID_DemuxContext *vid, AVIOContext *pb, AVPacket *pkt,
if (vid->palette) {
uint8_t *pdata = av_packet_new_side_data(pkt, AV_PKT_DATA_PALETTE,
BVID_PALETTE_SIZE);
if (vid->palette) {
uint8_t *pdata = av_packet_new_side_data(pkt, AV_PKT_DATA_PALETTE,
BVID_PALETTE_SIZE);
- if (pdata)
- memcpy(pdata, vid->palette, BVID_PALETTE_SIZE);
+ if (!pdata) {
+ ret = AVERROR(ENOMEM);
+ av_log(s, AV_LOG_ERROR, "Failed to allocate palette side data\n");
+ goto fail;
+ }
+ memcpy(pdata, vid->palette, BVID_PALETTE_SIZE);
+
av_freep(&vid->palette);
}
vid->nframes--; // used to check if all the frames were read
av_freep(&vid->palette);
}
vid->nframes--; // used to check if all the frames were read
- return 0;
fail:
av_free(vidbuf_start);
return ret;
fail:
av_free(vidbuf_start);
return ret;