Skip to content

Commit 814054b

Browse files
committed
dispose the response
1 parent 4a459f1 commit 814054b

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

LibGit2Sharp/Core/ManagedHttpSmartSubtransport.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ private class ManagedHttpSmartSubtransportStream : SmartSubtransportStream
5050
private static int MAX_REDIRECTS = 7;
5151

5252
private MemoryStream postBuffer = new MemoryStream();
53+
private HttpResponseMessage response;
5354
private Stream responseStream;
5455

5556
private HttpClientHandler httpClientHandler;
@@ -231,12 +232,12 @@ private HttpResponseMessage GetResponseWithRedirects()
231232

232233
public override int Read(Stream dataStream, long length, out long readTotal)
233234
{
234-
byte[] buffer = new byte[4096];
235+
byte[] buffer = new byte[16];
235236
readTotal = 0;
236237

237238
if (responseStream == null)
238239
{
239-
HttpResponseMessage response = GetResponseWithRedirects();
240+
response = GetResponseWithRedirects();
240241
responseStream = response.Content.ReadAsStreamAsync().Result;
241242
}
242243

@@ -245,7 +246,9 @@ public override int Read(Stream dataStream, long length, out long readTotal)
245246
int readLen = responseStream.Read(buffer, 0, (int)Math.Min(buffer.Length, length));
246247

247248
if (readLen == 0)
249+
{
248250
break;
251+
}
249252

250253
dataStream.Write(buffer, 0, readLen);
251254
readTotal += readLen;
@@ -263,6 +266,12 @@ protected override void Free()
263266
responseStream = null;
264267
}
265268

269+
if (response != null)
270+
{
271+
response.Dispose();
272+
response = null;
273+
}
274+
266275
if (httpClient != null)
267276
{
268277
httpClient.Dispose();

0 commit comments

Comments
 (0)