Skip to content
This repository has been archived by the owner on Apr 22, 2023. It is now read-only.

Commit

Permalink
Browse files Browse the repository at this point in the history
v8: debug: fix error handling in SendConnectMessage()
The old error handling code checked if the return value of Socket::Send() != 0,
which is wrong because Socket::Send() can write less bytes than requested or
return -1 on error.
  • Loading branch information
bnoordhuis authored and isaacs committed Jun 8, 2012
1 parent 43ff46b commit 1fb9cfc
Showing 1 changed file with 13 additions and 13 deletions.
26 changes: 13 additions & 13 deletions deps/v8/src/debug-agent.cc
Expand Up @@ -323,41 +323,41 @@ bool DebuggerAgentUtil::SendConnectMessage(const Socket* conn,
const char* embedding_host) {
static const int kBufferSize = 80;
char buffer[kBufferSize]; // Sending buffer.
bool ok;
int len;
int r;

// Send the header.
len = OS::SNPrintF(Vector<char>(buffer, kBufferSize),
"Type: connect\r\n");
ok = conn->Send(buffer, len);
if (!ok) return false;
r = conn->Send(buffer, len);
if (r != len) return false;

len = OS::SNPrintF(Vector<char>(buffer, kBufferSize),
"V8-Version: %s\r\n", v8::V8::GetVersion());
ok = conn->Send(buffer, len);
if (!ok) return false;
r = conn->Send(buffer, len);
if (r != len) return false;

len = OS::SNPrintF(Vector<char>(buffer, kBufferSize),
"Protocol-Version: 1\r\n");
ok = conn->Send(buffer, len);
if (!ok) return false;
r = conn->Send(buffer, len);
if (r != len) return false;

if (embedding_host != NULL) {
len = OS::SNPrintF(Vector<char>(buffer, kBufferSize),
"Embedding-Host: %s\r\n", embedding_host);
ok = conn->Send(buffer, len);
if (!ok) return false;
r = conn->Send(buffer, len);
if (r != len) return false;
}

len = OS::SNPrintF(Vector<char>(buffer, kBufferSize),
"%s: 0\r\n", kContentLength);
ok = conn->Send(buffer, len);
if (!ok) return false;
r = conn->Send(buffer, len);
if (r != len) return false;

// Terminate header with empty line.
len = OS::SNPrintF(Vector<char>(buffer, kBufferSize), "\r\n");
ok = conn->Send(buffer, len);
if (!ok) return false;
r = conn->Send(buffer, len);
if (r != len) return false;

// No body for connect message.

Expand Down

0 comments on commit 1fb9cfc

Please sign in to comment.