@@ -2840,16 +2840,18 @@ the_end:
for (i = 0; i < s->iccnum; i++)
total_size += s->iccentries[i].length;
- sd = av_frame_new_side_data(frame, AV_FRAME_DATA_ICC_PROFILE, total_size);
- if (!sd) {
+ ret = ff_frame_new_side_data(avctx, frame, AV_FRAME_DATA_ICC_PROFILE, total_size, &sd);
+ if (ret < 0) {
av_log(avctx, AV_LOG_ERROR, "Could not allocate frame side data\n");
- return AVERROR(ENOMEM);
+ return ret;
}
- /* Reassemble the parts, which are now in-order. */
- for (i = 0; i < s->iccnum; i++) {
- memcpy(sd->data + offset, s->iccentries[i].data, s->iccentries[i].length);
- offset += s->iccentries[i].length;
+ if (sd) {
+ /* Reassemble the parts, which are now in-order. */
+ for (i = 0; i < s->iccnum; i++) {
+ memcpy(sd->data + offset, s->iccentries[i].data, s->iccentries[i].length);
+ offset += s->iccentries[i].length;
+ }
}
}
From: Niklas Haas <git@haasn.dev> --- libavcodec/mjpegdec.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-)