From: peterjc Date: Wed, 20 Jun 2012 15:48:43 +0000 (+0100) Subject: Tweak order free things (avoids an 'samtools depad' seg fault on error) X-Git-Url: https://git.donarmstrong.com/?p=samtools.git;a=commitdiff_plain;h=4f0d8b980118cb40591bc689bcbe9ff1ad7b72ae Tweak order free things (avoids an 'samtools depad' seg fault on error) --- diff --git a/padding.c b/padding.c index ad8bf5c..fbbb204 100644 --- a/padding.c +++ b/padding.c @@ -355,7 +355,7 @@ bam_header_t * fix_header(bam_header_t *old, faidx_t *fai) if (strlen(header->text) < header->l_text) { //fprintf(stderr, "[depad] Reallocating header buffer\n"); assert (newtext == header->text); - newtext = calloc(strlen(header->text) + 1, 1); + newtext = malloc(strlen(header->text) + 1); strcpy(newtext, header->text); free(header->text); header->text = newtext; @@ -439,11 +439,11 @@ int main_pad2unpad(int argc, char *argv[]) depad_end: // close files, free and return - free(fn_list); free(fn_out); - if (h != in->header) bam_header_destroy(h); + if (fai) fai_destroy(fai); + if (h != in->header) bam_header_destroy(h); samclose(in); samclose(out); - fai_destroy(fai); + free(fn_list); free(fn_out); return ret; }