[mythtv-commits] [MythTV/mythtv] 969235: Free AVPacket with av_packet_free

kmdewaal noreply at github.com
Fri May 6 18:49:49 UTC 2022


  Branch: refs/heads/master
  Home:   https://github.com/MythTV/mythtv
  Commit: 969235ed8abea04a3a39607bf6b699c743394bc5
      https://github.com/MythTV/mythtv/commit/969235ed8abea04a3a39607bf6b699c743394bc5
  Author: Klaas de Waal <klaas at kldo.nl>
  Date:   2022-05-06 (Fri, 06 May 2022)

  Changed paths:
    M mythtv/libs/libmythtv/decoders/avformatdecoder.cpp

  Log Message:
  -----------
  Free AVPacket with av_packet_free

Free AVPacket allocated with av_packet_alloc with av_packet_free
instead of with av_packet_unref followed by a delete statement.

Valgrind reports the "Mismatched ..."  message here:
==1671692== Mismatched free() / delete / delete []
==1671692==    at 0x48478DD: operator delete(void*, unsigned long) (vg_replace_malloc.c:935)
==1671692==    by 0x4E34300: AvFormatDecoder::~AvFormatDecoder() (avformatdecoder.cpp:376)
and here:
==1684358== Mismatched free() / delete / delete []
==1684358==    at 0x48478DD: operator delete(void*, unsigned long) (vg_replace_malloc.c:935)
==1684358==    by 0x4E19A03: AvFormatDecoder::SeekReset(long long, unsigned int, bool, bool) (avformatdecoder.cpp:763)
This is caused by using a delete statement to free a packet
previously allocated by av_packet_alloc.
According to the comment in packet.h where av_packet_alloc is declared:
/**
 * Allocate an AVPacket and set its fields to default values.  The resulting
 * struct must be freed using av_packet_free().
 *
This is now implemented.




More information about the mythtv-commits mailing list