From d86ca619cf532a010198dfa0d9f5ed8f29f0d673 Mon Sep 17 00:00:00 2001 From: stderr64 Date: Mon, 4 Mar 2024 19:59:10 +0200 Subject: Make sure memory is allocated for command output and fixes to Makefile --- Makefile | 4 ++-- webhook_exec.h | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index d0450d4..109c9b3 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ MAX_HEADER_LENGTH=32767 MAX_CONTENT_LENGTH=524288 rel: - $(CC) -DMAX_PEEK_BYTES=${MAX_PEEK_BYTES} -DMAX_RECV_BYTES=${MAX_RECV_BYTES} -DMAX_HEADER_LENGTH=${MAX_HEADER_LENGTH} -DMAX_CONTENT_LENGTH=${MAX_CONTENT_LENGTH} -DMAX_WEBHOOK_OUTPUT_LENGTH=${MAX_WEBHOOK_OUTPUT_LENGTH} -Wall -pedantic-errors -Werror -lssl -lcrypto -lcjson cwebhook.c -o cwebhook + $(CC) -DMAX_PEEK_BYTES=${MAX_PEEK_BYTES} -DMAX_RECV_BYTES=${MAX_RECV_BYTES} -DMAX_HEADER_LENGTH=${MAX_HEADER_LENGTH} -DMAX_CONTENT_LENGTH=${MAX_CONTENT_LENGTH} -DMAX_WEBHOOK_OUTPUT_LENGTH=${MAX_WEBHOOK_OUTPUT_LENGTH} -Wall -pedantic-errors -Werror cwebhook.c -o cwebhook -lssl -lcrypto -lcjson debug: - $(CC) -DMAX_PEEK_BYTES=${MAX_PEEK_BYTES} -DMAX_RECV_BYTES=${MAX_RECV_BYTES} -DMAX_HEADER_LENGTH=${MAX_HEADER_LENGTH} -DMAX_CONTENT_LENGTH=${MAX_CONTENT_LENGTH} -DMAX_WEBHOOK_OUTPUT_LENGTH=${MAX_WEBHOOK_OUTPUT_LENGTH} -Wall -pedantic-errors -Werror -ggdb -lssl -lcrypto -lcjson cwebhook.c -o cwebhook + $(CC) -DMAX_PEEK_BYTES=${MAX_PEEK_BYTES} -DMAX_RECV_BYTES=${MAX_RECV_BYTES} -DMAX_HEADER_LENGTH=${MAX_HEADER_LENGTH} -DMAX_CONTENT_LENGTH=${MAX_CONTENT_LENGTH} -DMAX_WEBHOOK_OUTPUT_LENGTH=${MAX_WEBHOOK_OUTPUT_LENGTH} -Wall -pedantic-errors -Werror -ggdb cwebhook.c -o cwebhook -lssl -lcrypto -lcjson diff --git a/webhook_exec.h b/webhook_exec.h index 445ed88..48b9a4b 100644 --- a/webhook_exec.h +++ b/webhook_exec.h @@ -23,6 +23,11 @@ char *webhook_exec( webhooks_data_t *wh_data, char *wh_endpoint ){ } wh_data->wh_response = NULL; wh_data->wh_output = (char*)calloc( (size_t)MAX_WEBHOOK_OUTPUT_LENGTH, sizeof(char) ); + if ( wh_data->wh_output == NULL ){ + wh_data->wh_command = NULL; + wh_data->wh_output = NULL; + return "Error: failed to allocate memory for command output"; + } FILE *wh_proc = popen( wh_data->wh_command->valuestring, "r" ); if ( wh_proc == NULL ){ free( wh_data->wh_output ); -- cgit v1.2.3-86-g962b