Ticket #6387: libs_libmythdvdnav-searching-leak.patch

File libs_libmythdvdnav-searching-leak.patch, 1.3 KB (added by Erik Hovland <erik@…>, 15 years ago)

Fixes a potential memory leak in an error path

  • mythtv/libs/libmythdvdnav/dvdnav/searching.c

    ifo might be leaked in the error path.
    
    From: Erik Hovland <erik@hovland.org>
    
    
    ---
    
     mythtv/libs/libmythdvdnav/dvdnav/searching.c |    6 +++++-
     1 files changed, 5 insertions(+), 1 deletions(-)
    
    
    diff --git a/mythtv/libs/libmythdvdnav/dvdnav/searching.c b/mythtv/libs/libmythdvdnav/dvdnav/searching.c
    index d91b52f..dab2ce9 100644
    a b uint32_t dvdnav_describe_title_chapters(dvdnav_t *this, int32_t title, uint64_t 
    722722  uint16_t parts, i;
    723723  title_info_t *ptitle = NULL;
    724724  ptt_info_t *ptt = NULL;
    725   ifo_handle_t *ifo;
     725  ifo_handle_t *ifo = NULL;
    726726  pgc_t *pgc;
    727727  cell_playback_t *cell;
    728728  uint64_t length, *tmp=NULL;
    uint32_t dvdnav_describe_title_chapters(dvdnav_t *this, int32_t title, uint64_t 
    742742  ifo = vm_get_title_ifo(this->vm, title);
    743743  if(!ifo || !ifo->vts_pgcit) {
    744744    printerr("Couldn't open IFO for chosen title, exit.");
     745    retval = 0;
    745746    goto fail;
    746747  }
    747748
    uint32_t dvdnav_describe_title_chapters(dvdnav_t *this, int32_t title, uint64_t 
    782783  }
    783784  *duration = length;
    784785  vm_ifo_close(ifo);
     786  ifo = NULL;
    785787  retval = parts;
    786788  *times = tmp;
    787789
    788790fail:
    789791  pthread_mutex_unlock(&this->vm_lock);
     792  if(!retval && ifo)
     793    vm_ifo_close(ifo);
    790794  if(!retval && tmp)
    791795    free(tmp);
    792796  return retval;