summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authoreroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-20 21:27:17 +0000
committereroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-20 21:27:17 +0000
commitd05c7872fad600928cf93ea53549814854d90269 (patch)
treefc1e866b1b6116ce855847004c613f8cdc84f53b /net
parentae1276fb172b3b884d4b3b7b61210ca5016ab981 (diff)
downloadchromium_src-d05c7872fad600928cf93ea53549814854d90269.zip
chromium_src-d05c7872fad600928cf93ea53549814854d90269.tar.gz
chromium_src-d05c7872fad600928cf93ea53549814854d90269.tar.bz2
Fix a use-after free in socket pool which can happen after reaching the maxium number of sockets.
BUG=109876 Review URL: http://codereview.chromium.org/9226011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118506 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r--net/socket/client_socket_pool_base.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/socket/client_socket_pool_base.cc b/net/socket/client_socket_pool_base.cc
index 113985a..6b2a75d 100644
--- a/net/socket/client_socket_pool_base.cc
+++ b/net/socket/client_socket_pool_base.cc
@@ -386,6 +386,11 @@ int ClientSocketPoolBaseHelper::RequestSocketInternal(
return ERR_IO_PENDING;
}
} while (ReachedMaxSocketsLimit());
+
+ // It is possible that CloseOneIdleConnectionInLayeredPool() has deleted
+ // our Group (see http://crbug.com/109876), so look it up again
+ // to be safe.
+ group = GetOrCreateGroup(group_name);
}
}