diff options
Diffstat (limited to 'http_headers.h')
-rw-r--r-- | http_headers.h | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/http_headers.h b/http_headers.h index 3503bf1..71d376a 100644 --- a/http_headers.h +++ b/http_headers.h @@ -8,7 +8,8 @@ int get_request_data( http_request_data_t *hdt, char *req_contents ){ hdt->request_copy = (char*)calloc( hdt->request_size, sizeof(char) ); if ( hdt->request_copy == NULL ) return REQ_READ_ERROR; - strncpy( hdt->request_copy, req_contents, hdt->request_size ); + if ( !str_copy(hdt->request_copy, req_contents, hdt->request_size) ) + return REQ_READ_ERROR; if ( (size_t)strnlen(hdt->request_copy, (size_t)MAX_RECV_BYTES) != hdt->request_size ) return REQ_READ_ERROR; hdt->tok_current = strtok_r( hdt->request_copy, "\r\n", &hdt->tok_prev ); @@ -22,7 +23,8 @@ int get_request_data( http_request_data_t *hdt, char *req_contents ){ hdt->request_method = (char*)calloc( (size_t)strnlen(hdt->tok_current, (size_t)MAX_HEADER_LENGTH), sizeof(char) ); if ( hdt->request_method == NULL ) return REQ_READ_ERROR; - strncpy( hdt->request_method, hdt->tok_current, (size_t)strnlen(hdt->tok_current, (size_t)MAX_HEADER_LENGTH) ); + if ( !str_copy(hdt->request_method, hdt->tok_current, (size_t)strnlen(hdt->tok_current, (size_t)MAX_HEADER_LENGTH)) ) + return REQ_READ_ERROR; if ( (size_t)strnlen(hdt->request_method, MAX_HEADER_LENGTH) != (size_t)strnlen(hdt->tok_current, (size_t)(MAX_HEADER_LENGTH + 1)) ) return REQ_READ_ERROR; hdt->tok_current = strtok_r( NULL, " ", &hdt->tok_prev ); @@ -31,11 +33,13 @@ int get_request_data( http_request_data_t *hdt, char *req_contents ){ hdt->request_path = (char*)calloc( (size_t)strnlen(hdt->tok_current, (size_t)MAX_HEADER_LENGTH), sizeof(char) ); if ( hdt->request_path == NULL ) return REQ_READ_ERROR; - strncpy( hdt->request_path, hdt->tok_current, (size_t)strnlen(hdt->tok_current, (size_t)MAX_HEADER_LENGTH) ); + if ( !str_copy(hdt->request_path, hdt->tok_current, (size_t)strnlen(hdt->tok_current, (size_t)MAX_HEADER_LENGTH)) ) + return REQ_READ_ERROR; if ( (size_t)strnlen(hdt->request_path, (size_t)MAX_HEADER_LENGTH) != (size_t)strnlen(hdt->tok_current, (size_t)(MAX_HEADER_LENGTH + 1)) ) return REQ_READ_ERROR; memset( hdt->request_copy, 0, hdt->request_size ); - strncpy( hdt->request_copy, req_contents, hdt->request_size ); + if ( !str_copy(hdt->request_copy, req_contents, hdt->request_size) ) + return REQ_READ_ERROR; if ( (size_t)strnlen(hdt->request_copy, (size_t)(MAX_RECV_BYTES + 1)) != hdt->request_size ) return REQ_READ_ERROR; char *request_body_begin = strstr( hdt->request_copy, "\r\n\r\n" ); @@ -51,7 +55,8 @@ int get_request_data( http_request_data_t *hdt, char *req_contents ){ hdt->request_body = (char*)calloc( (size_t)strnlen(hdt->tok_current, (size_t)MAX_CONTENT_LENGTH), sizeof(char) ); if ( hdt->request_body == NULL ) return REQ_READ_ERROR; - strncpy( hdt->request_body, hdt->tok_current, (size_t)strnlen(hdt->tok_current, (size_t)MAX_CONTENT_LENGTH) ); + if ( !str_copy(hdt->request_body, hdt->tok_current, (size_t)strnlen(hdt->tok_current, (size_t)MAX_CONTENT_LENGTH)) ) + return REQ_READ_ERROR; if ( (size_t)strnlen(hdt->request_body, (size_t)MAX_CONTENT_LENGTH) != (size_t)strnlen(hdt->tok_current, (size_t)(MAX_CONTENT_LENGTH + 1)) ) return REQ_READ_ERROR; return REQ_READ_SUCCESS; |