Bug 1242452 - only if PR_GetIdentitiesLayer return valid pointer continue and pass it's result to PR_GetIdentitiesLayer. r?mcmanus draft
authorBogdan Postelnicu <bogdan.postelnicu@softvision.ro>
Mon, 25 Jan 2016 15:44:59 +0200
changeset 325461 81812b60b1ce8452da4b9c2b8f648f18beea1d15
parent 324949 c2256ee8ae9a8ee0bf7ab49a8b1924720d846cc7
child 513443 d85e4913cf1cfe47601879175f26ad28ad0de05e
push id9973
push userbmo:bogdan.postelnicu@softvision.ro
push dateMon, 25 Jan 2016 13:45:36 +0000
reviewersmcmanus
bugs1242452
milestone46.0a1
Bug 1242452 - only if PR_GetIdentitiesLayer return valid pointer continue and pass it's result to PR_GetIdentitiesLayer. r?mcmanus
netwerk/base/nsSocketTransportService2.cpp
--- a/netwerk/base/nsSocketTransportService2.cpp
+++ b/netwerk/base/nsSocketTransportService2.cpp
@@ -1460,18 +1460,22 @@ nsSocketTransportService::DiscoverMaxCou
 // Used to return connection info to Dashboard.cpp
 void
 nsSocketTransportService::AnalyzeConnection(nsTArray<SocketInfo> *data,
         struct SocketContext *context, bool aActive)
 {
     if (context->mHandler->mIsPrivate)
         return;
     PRFileDesc *aFD = context->mFD;
-    bool tcp = (PR_GetDescType(PR_GetIdentitiesLayer(aFD, PR_NSPR_IO_LAYER)) ==
-                PR_DESC_SOCKET_TCP);
+
+    PRFileDesc *idLayer = PR_GetIdentitiesLayer(aFD, PR_NSPR_IO_LAYER);
+
+    NS_ENSURE_TRUE_VOID(idLayer);
+
+    bool tcp = PR_GetDescType(idLayer) == PR_DESC_SOCKET_TCP;
 
     PRNetAddr peer_addr;
     PR_GetPeerName(aFD, &peer_addr);
 
     char host[64] = {0};
     PR_NetAddrToString(&peer_addr, host, sizeof(host));
 
     uint16_t port;