diff --git a/src/Client/Client.cpp b/src/Client/Client.cpp index 34cbd61..d34b27c 100644 --- a/src/Client/Client.cpp +++ b/src/Client/Client.cpp @@ -8,6 +8,7 @@ Client::Client() done = false; this->_fd = -1; this->_sended = 0; + _to_send_char = NULL; } Client::Client(char *str) @@ -17,11 +18,14 @@ Client::Client(char *str) this->_fd = -1; this->_buff = str; this->_sended = 0; + _to_send_char = NULL; + } Client::Client(char *str, ServerConfig *config) { + _to_send_char = NULL; allRead = false; done = false; this->_fd = -1; @@ -234,7 +238,8 @@ void Client::clear(void) _bodyToSend = ""; _headerToSend = ""; _toSend = ""; - free(_to_send_char); + if (_to_send_char) + free(_to_send_char); } Client::~Client() diff --git a/src/Server/Server.cpp b/src/Server/Server.cpp index fa1898b..8b37e17 100644 --- a/src/Server/Server.cpp +++ b/src/Server/Server.cpp @@ -87,7 +87,7 @@ void Server::readSocket(Client &client, int fd) int status; int bytes_read; - char buf[BUFFSIZE + 1] = {0}; + char buf[BUFFSIZE + 1]; DBOUT << TURQ << "IN readSocket" << RESET << std::endl; DBOUT << "client in readSocket "<< &client << ENDL; @@ -97,6 +97,7 @@ void Server::readSocket(Client &client, int fd) client.allRead = true; return; } + buf[bytes_read + 1] = '\0'; client.setRawData(buf); client.increaseRecvCounter(bytes_read); status = client.parseRequest();