From c626b2f4f2cc7d1236aeba079615a5078077ff10 Mon Sep 17 00:00:00 2001 From: LoaD Accumulator Date: Wed, 6 Sep 2023 07:37:49 +0200 Subject: [PATCH] [FIX] Fix memory issue mentionned in #33. --- src/Routes/RouteUserDirectory.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/Routes/RouteUserDirectory.c b/src/Routes/RouteUserDirectory.c index c1040ff..be51f04 100644 --- a/src/Routes/RouteUserDirectory.c +++ b/src/Routes/RouteUserDirectory.c @@ -52,6 +52,8 @@ ROUTE_IMPL(RouteUserDirectory, path, argp) char *searchTerm = NULL; char *requesterName = NULL; + char *error; + size_t limit = 10; size_t i, included; @@ -62,7 +64,7 @@ ROUTE_IMPL(RouteUserDirectory, path, argp) if (HttpRequestMethodGet(args->context) != HTTP_POST) { HttpResponseStatus(args->context, HTTP_BAD_REQUEST); - response = MatrixErrorCreate(M_UNRECOGNIZED); + response = MatrixErrorCreate(M_UNRECOGNIZED, NULL); goto finish; } @@ -70,7 +72,7 @@ ROUTE_IMPL(RouteUserDirectory, path, argp) if (!request) { HttpResponseStatus(args->context, HTTP_BAD_REQUEST); - response = MatrixErrorCreate(M_NOT_JSON); + response = MatrixErrorCreate(M_NOT_JSON, NULL); goto finish; } @@ -85,7 +87,7 @@ ROUTE_IMPL(RouteUserDirectory, path, argp) if (!user) { HttpResponseStatus(args->context, HTTP_BAD_REQUEST); - response = MatrixErrorCreate(M_UNKNOWN_TOKEN); + response = MatrixErrorCreate(M_UNKNOWN_TOKEN, NULL); goto finish; } requesterName = UserGetName(user); @@ -96,7 +98,8 @@ ROUTE_IMPL(RouteUserDirectory, path, argp) { /* The Spec requires search_term to be set to a string. */ HttpResponseStatus(args->context, HTTP_BAD_REQUEST); - response = MatrixErrorCreate(M_BAD_JSON); + error = "search_term is not a string, or is non-existent"; + response = MatrixErrorCreate(M_BAD_JSON, error); goto finish; } searchTerm = StrLower(JsonValueAsString(val)); @@ -120,9 +123,10 @@ ROUTE_IMPL(RouteUserDirectory, path, argp) config = ConfigLock(db); if (!config) { - Log(LOG_ERR, "Directory endpoint failed to lock configuration."); + error = "Directory endpoint failed to lock configuration."; + Log(LOG_ERR, error); HttpResponseStatus(args->context, HTTP_INTERNAL_SERVER_ERROR); - response = MatrixErrorCreate(M_UNKNOWN); + response = MatrixErrorCreate(M_UNKNOWN, error); goto finish; }