[FFmpeg-devel] Fwd: Questionable libav code
wm4
nfxjfg at googlemail.com
Wed Feb 3 08:41:45 CET 2016
On Tue, 2 Feb 2016 14:31:20 -0800
Ratin <ratin3 at gmail.com> wrote:
> libavcodec has codes like this one (utils.c):
>
> static AVPacket *add_to_pktbuf(AVPacketList **packet_buffer, AVPacket *pkt,
> AVPacketList **plast_pktl)
> {
> AVPacketList *pktl = av_mallocz(sizeof(AVPacketList));
> if (!pktl)
> return NULL;
>
> if (*packet_buffer)
> (*plast_pktl)->next = pktl;
> else
> *packet_buffer = pktl;
>
> /* Add the packet in the buffered packet list. */
> *plast_pktl = pktl;
> pktl->pkt = *pkt; <===========================
> return &pktl->pkt;
> }
>
> Here a struct variable is meant to be copied over via assignment, is that
> 100% correct to always work the way was intended? Given that the struct
> pkt is a big struct which has raw bytes that are malloc'd. I was always
> trained to avoid such struct assignment operations. What do people think?
There is no problem at all here.
More information about the ffmpeg-devel
mailing list