Some received packets can have size 0. The return value from av_malloc(0) may be NULL, which is ok if the size was 0. On OS X, however, the returned pointer is non-null but leads to crashes when trying to free it. --- libavformat/rtmppkt.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/libavformat/rtmppkt.c b/libavformat/rtmppkt.c index 63b0628..fd8fdc8 100644 --- a/libavformat/rtmppkt.c +++ b/libavformat/rtmppkt.c @@ -233,8 +233,8 @@ int ff_rtmp_packet_write(URLContext *h, RTMPPacket *pkt, int ff_rtmp_packet_create(RTMPPacket *pkt, int channel_id, RTMPPacketType type, int timestamp, int size) { - pkt->data = av_malloc(size); - if (!pkt->data) + pkt->data = size ? av_malloc(size) : NULL; + if (!pkt->data && size) return AVERROR(ENOMEM); pkt->data_size = size; pkt->channel_id = channel_id; -- 1.7.3.1 _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel