Combined upstream commits 980592386f23db8b0dc84c434805cb167d0cc091 and 5ef4ad86ec934282cba891922ec2d13784da3354. diff -u b/src/textcat.c b/src/textcat.c --- b/src/textcat.c +++ b/src/textcat.c @@ -212,8 +212,6 @@ sizeof(char) * (tmp_size + 1)); if (tmp == NULL) { - free(finger_print_file_name); - finger_print_file_name_size = 0; goto BAILOUT; } else @@ -226,10 +224,7 @@ strcat(finger_print_file_name, segment[0]); if (fp_Read(h->fprint[h->size], finger_print_file_name, 400) == 0) - { - textcat_Done(h); goto BAILOUT; - } h->fprint_disable[h->size] = 0xF0; /* 0xF0 is the code for enabled languages, 0x0F is for disabled */ @@ -242,9 +237,10 @@ return h; BAILOUT: + free(finger_print_file_name); fclose(fp); + textcat_Done(h); return NULL; - } extern candidate_t *textcat_GetClassifyFullOutput(void *handle)