diff options
author | jyasskin@chromium.org <jyasskin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-22 10:56:36 +0000 |
---|---|---|
committer | jyasskin@chromium.org <jyasskin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-22 10:56:36 +0000 |
commit | 649d05134ab20b8fa5d765eebb22f8d5852d3b5a (patch) | |
tree | 6b65eb8047704eaaba28fd2a35801fca3c60aa31 /content/browser/renderer_host/p2p | |
parent | 4307c7b9006d7e0d5f42ffd663cbec74ca12d3b4 (diff) | |
download | chromium_src-649d05134ab20b8fa5d765eebb22f8d5852d3b5a.zip chromium_src-649d05134ab20b8fa5d765eebb22f8d5852d3b5a.tar.gz chromium_src-649d05134ab20b8fa5d765eebb22f8d5852d3b5a.tar.bz2 |
Fix a false valgrind uninit error under clang.
Given "if (!stun || type == STUN_DATA_INDICATION)", clang's optimizer evaluates
both sides of the ||. Under -fno-omit-frame-pointer, this makes valgrind
unhappy. (http://build.chromium.org/p/chromium.memory.fyi/builders/Chromium%20Mac%20%28valgrind%29%282%29/builds/24355; I reproduced on linux under clang where valgrind gives line numbers.)
You can see the effect using the following program:
#include <stdio.h>
__attribute__((noinline)) bool InitializeIf(volatile bool cond, int* var) {
if (!cond)
return false;
*var = 3;
return true;
}
int main() {
int var;
bool initted = InitializeIf(false, &var);
if (!initted || var == 2)
printf("Yep.\n");
}
The fix is to initialize |type|.
r229975 seems to have exposed this, but didn't do anything to cause it.
R=hubbe@chromium.org
TBR=hclam@chromium.org
Review URL: https://codereview.chromium.org/34383003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@230099 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/renderer_host/p2p')
-rw-r--r-- | content/browser/renderer_host/p2p/socket_host_tcp.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/content/browser/renderer_host/p2p/socket_host_tcp.cc b/content/browser/renderer_host/p2p/socket_host_tcp.cc index f6865ba..3c890bb 100644 --- a/content/browser/renderer_host/p2p/socket_host_tcp.cc +++ b/content/browser/renderer_host/p2p/socket_host_tcp.cc @@ -291,7 +291,7 @@ void P2PSocketHostTcpBase::Send(const net::IPEndPoint& to, } if (!connected_) { - P2PSocketHost::StunMessageType type; + P2PSocketHost::StunMessageType type = P2PSocketHost::StunMessageType(); bool stun = GetStunPacketType(&*data.begin(), data.size(), &type); if (!stun || type == STUN_DATA_INDICATION) { LOG(ERROR) << "Page tried to send a data packet to " << to.ToString() |