24 Commits

Author SHA1 Message Date
Laszlo Ersek
166a6552a8 MdeModulePkg: DxeUdpIoLib: fix non-empty payload path in UDP reception
Commit 1b31acb66c02 ("MdeModulePkg: Check received packet size before use
it.") introduced a chunk of code under the new "Resume" label, in function
UdpIoOnDgramRcvdDpc(). The new code is supposed to run only when the
received packet has zero-length payload, but a "return" statement was
forgotten, and the code is reached on the normal (nonzero-length payload)
path as well, after the packet has been processed (and possibly freed) by
RxToken->CallBack(). This is a logic bug, with the direct symptom being
use-after-free / General Protection Fault.

Cc: Siyuan Fu <siyuan.fu@intel.com>
Cc: Jiaxin Wu <jiaxin.wu@intel.com>
Cc: Ting Ye <ting.ye@intel.com>
Cc: "Subramanian, Sriram (EG Servers Platform SW)" <sriram-s@hpe.com>
Fixes: 1b31acb66c026f2791c959a4ec9b55c04d583c22
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Sriram Subramanian <sriram-s@hpe.com>
2016-04-04 13:53:12 +02:00
Fu Siyuan
1b31acb66c MdeModulePkg: Check received packet size before use it.
Arbitrary length of packet may be received from network, including the
packets with zero payload data or malformed protocol header. So the code
much check the actually received data size before using it. For example, in
current edk2 network stack, an zero payload UDP packet may cause the
platform ASSERT in NetbufFromExt() because of the zero fragment number.
This patch update the IpIoLib and UdpIoLib to check and discard the zero
payload data packet to avoid above assert. Some other network drivers are
also updated to check the packet size to guarantee the minimum length of
protocol header is received from upper layer driver.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Sriram Subramanian <sriram-s@hpe.com>
Reviewed-by: Wu Jiaxin <jiaxin.wu@intel.com>
2016-04-01 13:30:08 +08:00
sfu5
75dce34062 1. Fix a bug in PXE driver that the PXE boot do not restart if a new boot option on the different IP stack is selected.
2. Retrieve the IP information after iSCSI TCPv6 connection established and fill it into iBFT table.
3. Generate a random IAID for each NIC port to require different IPv6 address in PXE driver.
4. Update function EfiMtftp6Configure() and Mtftp6RrqHandleOack() to allocate at most one UdpIo.
5. Fix a typo from “destory” to “destroy” in network code.

Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
Reviewed-by: Ouyang Qian <qian.ouyang@intel.com>

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13859 6f19259b-4bc3-4df7-8a09-765794883524
2012-10-17 08:23:41 +00:00
hhtian
cd5ebaa06d Update the copyright notice format
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10420 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-24 09:49:11 +00:00
geekboy15a
e798cd87ca Fixed GCC 4.4 build issues due to EFIAPI not being used when required.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10379 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-16 23:24:45 +00:00
vanjeff
e285199897 refine the code and add more security check.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9691 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-08 02:35:56 +00:00
tye
b45b45b2d2 1. Update the UdpIo to a combined UdpIo to support both v4 and v6 stack.
2. Update Dhcp4 and Mtftp4 driver to adopt the combined UdpIo.
3. Clean up coding style problems in combined IpIoLib/NetLib. Update Tcp4 and Udp4 to adopt the changes.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9382 6f19259b-4bc3-4df7-8a09-765794883524
2009-10-30 05:11:38 +00:00
mdkinney
d8d26fb207 Retire NetLibQueueDpc() and NetLibDispatchDpc() and use QueueDpc() and DispatchDpc() from the DpcLib instead.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8897 6f19259b-4bc3-4df7-8a09-765794883524
2009-07-11 22:51:51 +00:00
lgao4
e4b99ad979 Change library class PlatDriOverLib to PlatformDriOverrideLib
Move Application Platform Override Manager into Application directory.
Add comments in Network library class to say they are only intended to be used by UEFI network stack modules.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7641 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-24 08:26:40 +00:00
ywu21
8f5e6151d5 fix file header issues
add . at the end of lines

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7259 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-13 08:48:19 +00:00
jgong5
ca9d3a9ded Add () after function name so that Doxygen can create reference in doc.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7145 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-29 03:49:50 +00:00
jgong5
f51f406037 Fix OPTIONAL usage
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7139 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-26 09:12:58 +00:00
jgong5
cab450ccda Add more comments
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7138 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-26 09:09:02 +00:00
ywu21
6c5dc2b0bf pure UEFI should not include “PiDxe.h” and “PiPei.h”
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7101 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-23 09:18:06 +00:00
ywu21
9a3293ac5c Fix filer header
Fix function header
Fix return status issues
Fix  in out issues
group functions source files reasonably to avoid duplicate functions declarations

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7098 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-23 07:35:46 +00:00
jji4
fe1e36e550 Patch to remove STATIC modifier. This is on longer recommended by EFI Framework coding style. All duplicated symbols has been renamed accordingly.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6296 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-30 06:05:06 +00:00
vanjeff
7b414b4ed6 1. add public functions header.
2. apply for doxgen format for file header.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5043 6f19259b-4bc3-4df7-8a09-765794883524
2008-04-11 03:36:07 +00:00
vanjeff
e48e37fce2 Use Mde library and definition instead of some native definitions in NetLib, to simply network library.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4693 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-14 09:40:22 +00:00
jljusten
ba0f75a3b0 MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.c:
Fix filename case from 'library' to 'Library'.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4684 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-11 22:21:12 +00:00
vanjeff
36ee91ca36 1. Add DPC protocol and DpcLib library in MdeModulePkg.
2. Add DpcDxe module and DxeDpcLib module in MdeModulePkg
3. Port network stack module to use DPC.
4. Use MIN, and MAX defined in MdePkg to replace NET_MIN and NET_MAX.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4307 6f19259b-4bc3-4df7-8a09-765794883524
2007-11-20 05:42:23 +00:00
vanjeff
b61439a709 1. Fixed one bug in Undi driver.
2. Add default branch to meet CYGWINGCC build in Tcp4Dispatcher.c.
3. Sync the latest network stack library.
4. Fixed one bug in Mtftp4Support.c, for AsciiStrCpy() return the pointer to head of string, not the tail of string.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3741 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-30 06:58:37 +00:00
vanjeff
687a2e5f69 1. Enable Network stack to pass SCT, currently MNP, ARP, IP4, TCP4 and DHCP4 have passed SCT.
2. Enable Network stack to pass ICC build.
3. Sync Network library instances' module names with their filenames.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3692 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-23 02:19:41 +00:00
vanjeff
4eb65aff71 Fixed EBC build issues.
Fixed ICC build issues.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3431 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-25 05:32:10 +00:00
vanjeff
cbf316f207 1. Import NetLib, IpIoLib and UdpIoLib class definitions
2. Import DxeNetLib, DxeIpIoLib and DxeUdpIoLib libraries instances
2. Port Ip4Config module

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3405 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-23 09:17:39 +00:00