comparison ifo_read.c @ 71:df32da8e44b1 src

Make sure vts_ptt_srpt->title is freed title was being leaked when the error path is hit in this function.
author erik
date Sat, 13 Aug 2011 17:28:48 +0000
parents f6cd5131324d
children 933bbcf89338
comparison
equal deleted inserted replaced
70:f6cd5131324d 71:df32da8e44b1
1158 1158
1159 vts_ptt_srpt = malloc(sizeof(vts_ptt_srpt_t)); 1159 vts_ptt_srpt = malloc(sizeof(vts_ptt_srpt_t));
1160 if(!vts_ptt_srpt) 1160 if(!vts_ptt_srpt)
1161 return 0; 1161 return 0;
1162 1162
1163 vts_ptt_srpt->title = NULL;
1163 ifofile->vts_ptt_srpt = vts_ptt_srpt; 1164 ifofile->vts_ptt_srpt = vts_ptt_srpt;
1164 1165
1165 if(!(DVDReadBytes(ifofile->file, vts_ptt_srpt, VTS_PTT_SRPT_SIZE))) { 1166 if(!(DVDReadBytes(ifofile->file, vts_ptt_srpt, VTS_PTT_SRPT_SIZE))) {
1166 fprintf(stderr, "libdvdread: Unable to read PTT search table.\n"); 1167 fprintf(stderr, "libdvdread: Unable to read PTT search table.\n");
1167 goto fail; 1168 goto fail;
1255 return 1; 1256 return 1;
1256 1257
1257 fail: 1258 fail:
1258 free(data); 1259 free(data);
1259 ifofile->vts_ptt_srpt = 0; 1260 ifofile->vts_ptt_srpt = 0;
1261 free(vts_ptt_srpt->title);
1260 free(vts_ptt_srpt); 1262 free(vts_ptt_srpt);
1261 return 0; 1263 return 0;
1262 } 1264 }
1263 1265
1264 1266