diff --git a/src/modules/rpc/log.c b/src/modules/rpc/log.c index ca26c26e3..67d695e09 100644 --- a/src/modules/rpc/log.c +++ b/src/modules/rpc/log.c @@ -221,8 +221,6 @@ void rpc_log_send(Client *client, json_t *request, json_t *params) REQUIRE_PARAM_STRING("event_id", event_id); OPTIONAL_PARAM_STRING("timestamp", timestamp); - new_message(&me, NULL, &mtags); - serialized = json_dumps(params, JSON_COMPACT); if (!serialized) { @@ -230,12 +228,16 @@ void rpc_log_send(Client *client, json_t *request, json_t *params) "Received malformed JSON in RPC log message (log.send) from $client.name"); return; } - + + new_message(&me, NULL, &mtags); + MessageTag *json_mtag = safe_alloc(sizeof(MessageTag)); safe_strdup(json_mtag->name, "unrealircd.org/json-log"); safe_strdup(json_mtag->value, serialized); AddListItem(json_mtag, mtags); + safe_free(serialized); + const char *cmd_params[6] = { me.name, level, @@ -247,7 +249,7 @@ void rpc_log_send(Client *client, json_t *request, json_t *params) do_cmd(&me, mtags, "SLOG", 5, cmd_params); safe_free_message_tags(mtags); - + /* Simply return success */ result = json_boolean(1); rpc_response(client, request, result); diff --git a/src/modules/rpc/rpc.c b/src/modules/rpc/rpc.c index f395c5314..f68e5a6c5 100644 --- a/src/modules/rpc/rpc.c +++ b/src/modules/rpc/rpc.c @@ -1430,7 +1430,7 @@ int rpc_parse_auth_uri(Client *client, WebRequest *web, char **username, char ** { p += 9; *password = p; - p = strchr(str, '&'); + p = strchr(p, '&'); if (p) *p = '\0'; }