summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Varshavchik2015-04-24 07:02:07 -0400
committerSam Varshavchik2015-04-24 07:07:24 -0400
commit11f7324bd33d0105bf8e3816b5bb599bac197255 (patch)
tree0cb3e6fc23287dedbabc805d4ffe1ad9998279c6
parent070a5986a3ada0cd6cbb74c77f4e41ed3c4eb48c (diff)
downloadcourier-libs-11f7324bd33d0105bf8e3816b5bb599bac197255.tar.bz2
Fix use after free.
-rw-r--r--maildir/maildircache.c3
-rw-r--r--rfc2045/rfc2045.c2
-rw-r--r--sqwebmail/ChangeLog4
3 files changed, 8 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);
}
diff --git a/rfc2045/rfc2045.c b/rfc2045/rfc2045.c
index 2245f43..8cbd3a7 100644
--- a/rfc2045/rfc2045.c
+++ b/rfc2045/rfc2045.c
@@ -997,6 +997,7 @@ static void save_content_type_parameter(const char *name,
{
free(p);
rfc2045_enomem();
+ return;
}
free(p);
@@ -1076,6 +1077,7 @@ static void save_content_disposition_parameter(const char *name,
{
free(p);
rfc2045_enomem();
+ return;
}
free(p);
}
diff --git a/sqwebmail/ChangeLog b/sqwebmail/ChangeLog
index 66affb7..8e2e570 100644
--- a/sqwebmail/ChangeLog
+++ b/sqwebmail/ChangeLog
@@ -1,3 +1,7 @@
+2015-04-24 Giovanni Bechis <giovanni@openbsd.org>
+
+ * maildircache.c: fix use after free.
+
2015-03-03 Sam Varshavchik <mrsam@courier-mta.com>
* Recognize 01-Jan-1970 as a valid RFC 822 date.