From 77a7fa11c8385a1935d543d2c115348b3057696c Mon Sep 17 00:00:00 2001 From: Nayan <33187059+GShadow5@users.noreply.github.com> Date: Wed, 7 May 2025 18:14:45 -0400 Subject: [PATCH] make print functions null safe --- http_stuff.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/http_stuff.c b/http_stuff.c index acb153a..ab235e1 100644 --- a/http_stuff.c +++ b/http_stuff.c @@ -43,26 +43,37 @@ http_response* free_http_response(http_response* res) { } void print_http_request(http_request* req) { - printf("Method: %s\n", req->method); - printf("URL: %s\n", req->url); + if (req == NULL) { + printf("Attempting to print NULL request\n"); + return; + } + if (req->method == NULL) { + } + printf("Method: %s\n", (req->method == NULL) ? "" : req->method); + printf("URL: %s\n", (req->url == NULL) ? "" : req->url); printf("Headers:\n"); for (int i = 0; i < req->num_headers; i++) { - printf("%s: %s\n", req->headers[i].key, req->headers[i].value); + printf("%s: %s\n", + (req->headers[i].key == NULL) ? "" : req->headers[i].key, + (req->headers[i].value == NULL) ? "" : req->headers[i].value); } - printf("Content-Type: %s\n", req->content_type); + printf("Content-Type: %s\n", + (req->content_type == NULL) ? "" : req->content_type); printf("Content-Length: %zu\n", req->content_length); - printf("Body:\n%s\n", req->body); + printf("Body:\n%s\n", (req->body == NULL) ? "" : req->body); } void print_http_response(http_response* res) { - printf("Status Line: %s\n", res->status_line); + printf("Status Line: %s\n", + (res->status_line == NULL) ? "" : res->status_line); printf("Headers:\n"); for (int i = 0; i < res->num_headers; i++) { printf("%s: %s\n", res->headers[i].key, res->headers[i].value); } - printf("Content-Type: %s\n", res->content_type); + printf("Content-Type: %s\n", + (res->content_type == NULL) ? "" : res->content_type); printf("Content-Length: %zu\n", res->content_length); - printf("Body:\n%s\n", res->body); + printf("Body:\n%s\n", (res->body == NULL) ? "" : res->body); } char* reponse_to_string(http_response* res) {