From 109469d4b67636042242fbe2e2162b0c36847675 Mon Sep 17 00:00:00 2001 From: Ruthenic Date: Fri, 6 May 2022 17:31:12 -0400 Subject: [PATCH] now works with asan/usan enabled --- bin/httpsrv | Bin 21864 -> 75160 bytes lib/reqHeader.h | 2 +- src/srv.c | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/httpsrv b/bin/httpsrv index 4e857f4685de15eb78a193728b62ca47be834655..4ec24e488efb3f84dfe283c244afa448224dd682 100755 GIT binary patch literal 75160 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 ouli5wZdBQYh1e!^LD$^U}M>T0r#Z5%>V!Z diff --git a/lib/reqHeader.h b/lib/reqHeader.h index cef15f7..f6f2d96 100644 --- a/lib/reqHeader.h +++ b/lib/reqHeader.h @@ -5,7 +5,7 @@ typedef struct { char method[16]; char path[256]; - char protocol[10]; + char protocol[16]; } ReqHeader; ReqHeader readReqHeader(int client) { diff --git a/src/srv.c b/src/srv.c index 9b08f32..f0a9f2c 100644 --- a/src/srv.c +++ b/src/srv.c @@ -94,7 +94,7 @@ funy: { reqlog("%d %s\n", rawHeader.status, request.path); char tmpHeader[1024]; makeHeader(tmpHeader, &rawHeader); - char resHeader[1024]; //= "HTTP/1.1 200 OK\r\n\nHello, world!"; + char* resHeader = malloc(strlen(tmpHeader) + strlen(file) + 1); //= "HTTP/1.1 200 OK\r\n\nHello, world!"; sprintf(resHeader, "%s%s", (char*)tmpHeader, file); send(client, resHeader, strlen(resHeader), 0); close(client);