From 94e642e6036dc694b07cab895c9b5b267f0db065 Mon Sep 17 00:00:00 2001 From: Christian Holler Date: Mon, 9 Sep 2019 17:17:22 +0000 Subject: [PATCH] Bug 1579475 - HTTP fuzzing target should call RemoveRequestContext. r=mayhemer Differential Revision: https://phabricator.services.mozilla.com/D45035 --HG-- extra : moz-landing-system : lando --- netwerk/test/fuzz/TestHttpFuzzing.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/netwerk/test/fuzz/TestHttpFuzzing.cpp b/netwerk/test/fuzz/TestHttpFuzzing.cpp index da0c5c63aebb..967657a04181 100644 --- a/netwerk/test/fuzz/TestHttpFuzzing.cpp +++ b/netwerk/test/fuzz/TestHttpFuzzing.cpp @@ -140,6 +140,10 @@ static int FuzzingRunNetworkHttp(const uint8_t* data, size_t size) { nsWeakPtr channelRef; + nsCOMPtr rcsvc = + mozilla::net::RequestContextService::GetOrCreate(); + uint64_t rcID; + { nsCOMPtr url; nsresult rv; @@ -247,15 +251,14 @@ static int FuzzingRunNetworkHttp(const uint8_t* data, size_t size) { MOZ_CRASH("SetRequestMethod on gHttpChannel failed."); } - nsCOMPtr rcsvc = - mozilla::net::RequestContextService::GetOrCreate(); nsCOMPtr rc; rv = rcsvc->NewRequestContext(getter_AddRefs(rc)); if (NS_FAILED(rv)) { MOZ_CRASH("NewRequestContext failed."); } + rcID = rc->GetID(); - rv = gHttpChannel->SetRequestContextID(rc->GetID()); + rv = gHttpChannel->SetRequestContextID(rcID); if (NS_FAILED(rv)) { MOZ_CRASH("SetRequestContextID on gHttpChannel failed."); } @@ -287,6 +290,7 @@ static int FuzzingRunNetworkHttp(const uint8_t* data, size_t size) { // Wait for the connection to indicate closed SpinEventLoopUntil([&]() -> bool { return gFuzzingConnClosed; }); + rcsvc->RemoveRequestContext(rcID); return 0; }