commit f1262b4: [Minor] Fix lifetime
Vsevolod Stakhov
vsevolod at highsecure.ru
Wed Dec 23 15:35:06 UTC 2020
Author: Vsevolod Stakhov
Date: 2020-12-23 15:28:32 +0000
URL: https://github.com/rspamd/rspamd/commit/f1262b46f67e6a99d12052da93e8157e0935783c (HEAD -> master)
[Minor] Fix lifetime
This is a reason why I hate C
---
src/libserver/http/http_router.c | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/src/libserver/http/http_router.c b/src/libserver/http/http_router.c
index 9f36118b2..a5b960e72 100644
--- a/src/libserver/http/http_router.c
+++ b/src/libserver/http/http_router.c
@@ -254,6 +254,7 @@ rspamd_http_router_finish_handler (struct rspamd_http_connection *conn,
guint i;
rspamd_regexp_t *re;
struct rspamd_http_connection_router *router;
+ gchar *pathbuf = NULL;
G_STATIC_ASSERT (sizeof (rspamd_http_router_handler_t) ==
sizeof (gpointer));
@@ -286,7 +287,6 @@ rspamd_http_router_finish_handler (struct rspamd_http_connection *conn,
/* Search for path */
if (msg->url != NULL && msg->url->len != 0) {
- gchar *pathbuf = NULL;
http_parser_parse_url (msg->url->str, msg->url->len, TRUE, &u);
@@ -312,10 +312,6 @@ rspamd_http_router_finish_handler (struct rspamd_http_connection *conn,
found = g_hash_table_lookup (entry->rt->paths, &lookup);
memcpy (&handler, &found, sizeof (found));
msg_debug ("requested known path: %T", &lookup);
-
- if (pathbuf) {
- g_free (pathbuf);
- }
}
else {
err = g_error_new (HTTP_ERROR, 404,
@@ -340,6 +336,10 @@ rspamd_http_router_finish_handler (struct rspamd_http_connection *conn,
}
if (handler != NULL) {
+ if (pathbuf) {
+ g_free (pathbuf);
+ }
+
return handler (entry, msg);
}
else {
@@ -351,6 +351,10 @@ rspamd_http_router_finish_handler (struct rspamd_http_connection *conn,
found = rspamd_regexp_get_ud (re);
memcpy (&handler, &found, sizeof (found));
+ if (pathbuf) {
+ g_free (pathbuf);
+ }
+
return handler (entry, msg);
}
}
@@ -372,6 +376,10 @@ rspamd_http_router_finish_handler (struct rspamd_http_connection *conn,
}
}
+ if (pathbuf) {
+ g_free (pathbuf);
+ }
+
return 0;
}
More information about the Commits
mailing list