summaryrefslogtreecommitdiffstats
path: root/maildir/maildircache.c
diff options
context:
space:
mode:
authorSam Varshavchik2015-04-24 07:02:07 -0400
committerSam Varshavchik2015-04-24 07:07:24 -0400
commit11f7324bd33d0105bf8e3816b5bb599bac197255 (patch)
tree0cb3e6fc23287dedbabc805d4ffe1ad9998279c6 /maildir/maildircache.c
parent070a5986a3ada0cd6cbb74c77f4e41ed3c4eb48c (diff)
downloadcourier-libs-11f7324bd33d0105bf8e3816b5bb599bac197255.tar.bz2
Fix use after free.
Diffstat (limited to 'maildir/maildircache.c')
-rw-r--r--maildir/maildircache.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/maildir/maildircache.c b/maildir/maildircache.c
index 9f14e82..4db3a03 100644
--- a/maildir/maildircache.c
+++ b/maildir/maildircache.c
@@ -249,17 +249,18 @@ FILE *fp;
exit(1);
}
}
- free(f);
if ( fwrite(data, strlen(data), 1, fp) != 1 || fflush(fp)
|| ferror(fp))
{
fclose(fp);
unlink(f); /* Problems */
+ free(f);
fprintf(stderr, "CRIT: maildircache: Cache create failure - write error.\n");
exit(1);
}
else fclose(fp);
+ free(f);
exit(0);
}