summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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.