From fcb6f89d0176c3fa28a20cf3d958ee91f9c18799 Mon Sep 17 00:00:00 2001 From: lpleahy Date: Mon, 5 Mar 2012 19:05:47 +0000 Subject: Fix read issue detected by the following Python program. The issue was that the caller's buffer pointer was not being advanced between segments of the read data. Signed-off-by: lpleahy ----- UnbufferedRead.py ----- import httplib conn = httplib.HTTPConnection("10.241.97.30") conn.request('GET', '/') resp = conn.getresponse(buffering=True) if resp.status != 200: print "status:", resp.status print "aborting" sys.exit(1) while True: chunk = resp.read() if not chunk: break print chunk git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13077 6f19259b-4bc3-4df7-8a09-765794883524 --- StdLib/EfiSocketLib/Tcp4.c | 5 +++++ StdLib/EfiSocketLib/Tcp6.c | 5 +++++ 2 files changed, 10 insertions(+) (limited to 'StdLib') diff --git a/StdLib/EfiSocketLib/Tcp4.c b/StdLib/EfiSocketLib/Tcp4.c index 32c7a394c4..8044d807c7 100644 --- a/StdLib/EfiSocketLib/Tcp4.c +++ b/StdLib/EfiSocketLib/Tcp4.c @@ -1571,6 +1571,11 @@ EslTcp4Receive ( DataLength )); CopyMem ( pBuffer, pPacket->pBuffer, DataLength ); + // + // Set the next buffer address + // + pBuffer += DataLength; + // // Determine if the data is being read // diff --git a/StdLib/EfiSocketLib/Tcp6.c b/StdLib/EfiSocketLib/Tcp6.c index 6f2cf75779..b070aaa724 100644 --- a/StdLib/EfiSocketLib/Tcp6.c +++ b/StdLib/EfiSocketLib/Tcp6.c @@ -1635,6 +1635,11 @@ EslTcp6Receive ( DataLength )); CopyMem ( pBuffer, pPacket->pBuffer, DataLength ); + // + // Set the next buffer address + // + pBuffer += DataLength; + // // Determine if the data is being read // -- cgit v1.2.3