A very small (1k> LoC), no junk, HTTP file server supporting GET, PUT, DELETE, directory listing, and authentication all in ANSI C with only a standard library!
There is an error in function "send_response".
In the line where
char* response_buffer = malloc(get_response_length(response));
Should be
char* response_buffer = malloc(get_response_length(response)+1);
Because snprintf adds '\0' in the end