aboutsummaryrefslogtreecommitdiff
path: root/src/Routes/Search.c
diff options
context:
space:
mode:
authorfrosty <gabriel@bwaaa.monster>2026-03-13 22:28:52 +0000
committerfrosty <gabriel@bwaaa.monster>2026-03-13 22:28:52 +0000
commit27899706fbfa1ceff1af7e3377e84748aa89fab3 (patch)
tree8171aa57ffd25ad0b0ae25533ada1e3d2346eb72 /src/Routes/Search.c
parent8d9588a44ffd4e55a402c6fcbc80cea04b4fe4d4 (diff)
downloadomnisearch-27899706fbfa1ceff1af7e3377e84748aa89fab3.tar.gz
fix: null checks after some malloc allocations
Diffstat (limited to 'src/Routes/Search.c')
-rw-r--r--src/Routes/Search.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/Routes/Search.c b/src/Routes/Search.c
index 5e76d7d..6fa3157 100644
--- a/src/Routes/Search.c
+++ b/src/Routes/Search.c
@@ -266,6 +266,18 @@ int results_handler(UrlParams *params) {
char ***results_matrix = (char ***)malloc(sizeof(char **) * total_results);
int *results_inner_counts = (int *)malloc(sizeof(int) * total_results);
char **seen_urls = (char **)malloc(sizeof(char *) * total_results);
+ if (!results_matrix || !results_inner_counts || !seen_urls) {
+ if (results_matrix) free(results_matrix);
+ if (results_inner_counts) free(results_inner_counts);
+ if (seen_urls) free(seen_urls);
+ char *html = render_template("results.html", &ctx);
+ if (html) {
+ send_response(html);
+ free(html);
+ }
+ free_context(&ctx);
+ return 0;
+ }
int unique_count = 0;
for (int i = 0; i < ENGINE_COUNT; i++) {
@@ -288,8 +300,21 @@ int results_handler(UrlParams *params) {
}
seen_urls[unique_count] = strdup(display_url);
+ if (!seen_urls[unique_count]) {
+ free(all_results[i][j].url);
+ free(all_results[i][j].title);
+ free(all_results[i][j].snippet);
+ continue;
+ }
results_matrix[unique_count] =
(char **)malloc(sizeof(char *) * INFOBOX_FIELD_COUNT);
+ if (!results_matrix[unique_count]) {
+ free(seen_urls[unique_count]);
+ free(all_results[i][j].url);
+ free(all_results[i][j].title);
+ free(all_results[i][j].snippet);
+ continue;
+ }
char *pretty_url = pretty_display_url(display_url);
results_matrix[unique_count][0] = strdup(display_url);