Commit b0cbeb1d authored by JINMEI Tatuya's avatar JINMEI Tatuya
Browse files

exception safe bug. use vector instead of an array allocated by new[].


git-svn-id: svn://bind10.isc.org/svn/bind10/trunk@1193 e5f2f494-b856-4b98-b285-d166d9295462
parent a902e5f1
......@@ -18,6 +18,7 @@
#include "session.h"
#include <cstdio>
#include <vector>
#include <iostream>
#include <sstream>
......@@ -196,14 +197,14 @@ Session::recvmsg(ElementPtr& env, ElementPtr& msg, bool nonblock)
// remove the header-length bytes from the total length
length -= 2;
char *buffer = new char[length];
ret = read(sock, buffer, length);
if (ret != length)
std::vector<char> buffer(length);
ret = read(sock, &buffer[0], length);
if (ret != length) {
throw SessionError("Short read");
}
std::string header_wire = std::string(buffer, header_length);
std::string body_wire = std::string(buffer + header_length, length - header_length);
delete [] buffer;
std::string header_wire = std::string(&buffer[0], header_length);
std::string body_wire = std::string(&buffer[0] + header_length, length - header_length);
std::stringstream header_wire_stream;
header_wire_stream << header_wire;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment