summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-03-17 22:13:47 -0400
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-03-18 00:03:14 -0400
commit4dd5da7f7d37f964fe95b0f0d451d7843a34591d (patch)
tree1be85ebc78934510176bb6beb322e5fc013b23a9
parent9786767a36803f6a27870e6f2a666113565e19d2 (diff)
microhttpd-util: avoid double free on error
It seems that resources are properly deallocated by MHD_destroy_response, even if enqueuing the request fails. Also replace a trivial printf with alloca and fixup log message (it'll now be something like "Connection from CN=some.host.name", which seems clear enough.)
-rw-r--r--src/journal/microhttpd-util.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/journal/microhttpd-util.c b/src/journal/microhttpd-util.c
index 250be93dbe..f693e0f10d 100644
--- a/src/journal/microhttpd-util.c
+++ b/src/journal/microhttpd-util.c
@@ -35,12 +35,9 @@
#endif
void microhttpd_logger(void *arg, const char *fmt, va_list ap) {
- _cleanup_free_ char *f = NULL;
+ char *f;
- if (asprintf(&f, "microhttpd: %s", fmt) <= 0) {
- log_oom();
- return;
- }
+ f = strappenda("microhttpd: ", fmt);
DISABLE_WARNING_FORMAT_NONLITERAL;
log_metav(LOG_INFO, NULL, 0, NULL, f, ap);
@@ -101,10 +98,7 @@ int mhd_respondf(struct MHD_Connection *connection,
if (r < 0)
return respond_oom(connection);
- r = mhd_respond_internal(connection, code, m, r, MHD_RESPMEM_MUST_FREE);
- if (r == MHD_NO)
- free(m);
- return r;
+ return mhd_respond_internal(connection, code, m, r, MHD_RESPMEM_MUST_FREE);
}
#ifdef HAVE_GNUTLS
@@ -256,7 +250,7 @@ int check_permissions(struct MHD_Connection *connection, int *code) {
return -EPERM;
}
- log_info("Connection from DN %s", buf);
+ log_info("Connection from %s", buf);
r = verify_cert_authorized(session);
if (r < 0) {