Commit Graph

22 Commits

Author SHA1 Message Date
Hao Wu 4ff5fd203c IntelFrameworkModulePkg: Refine type cast for pointer subtraction
For pointer subtraction, the result is of type "ptrdiff_t". According to
the C11 standard (Committee Draft - April 12, 2011):

"When two pointers are subtracted, both shall point to elements of the
same array object, or one past the last element of the array object; the
result is the difference of the subscripts of the two array elements. The
size of the result is implementation-defined, and its type (a signed
integer type) is ptrdiff_t defined in the <stddef.h> header. If the result
is not representable in an object of that type, the behavior is
undefined."

In our codes, there are cases that the pointer subtraction is not
performed by pointers to elements of the same array object. This might
lead to potential issues, since the behavior is undefined according to C11
standard.

Also, since the size of type "ptrdiff_t" is implementation-defined. Some
static code checkers may warn that the pointer subtraction might underflow
first and then being cast to a bigger size. For example:

UINT8  *Ptr1, *Ptr2;
UINTN  PtrDiff;
...
PtrDiff = (UINTN) (Ptr1 - Ptr2);

The commit will refine the pointer subtraction expressions by casting each
pointer to UINTN first and then perform the subtraction:

PtrDiff = (UINTN) Ptr1 - (UINTN) Ptr2;

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Acked-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>
2017-03-06 14:14:46 +08:00
Laszlo Ersek bdb898a50c IntelFrameworkModulePkg/BdsDxe: rebase to ARRAY_SIZE()
Cc: Jeff Fan <jeff.fan@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
2016-10-27 11:10:55 +02:00
Hao Wu a3c9617ea6 IntelFrameworkModulePkg BootMaint: Fix potential read over memory boundary
This commit will resolve the issue brought by r17736.

Str   = AllocateCopyPool (MaxLen * sizeof (CHAR16), Str1);

The above using of AllocateCopyPool() will read contents out of the scope
of Str1. Potential risk for Str1 allocated at the boundary of memory
region.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Qiu Shumin <shumin.qiu@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17931 6f19259b-4bc3-4df7-8a09-765794883524
2015-07-13 01:23:14 +00:00
Hao Wu 49264dac6e IntelFrameworkModulePkg BootMaint: Use safe string functions
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17736 6f19259b-4bc3-4df7-8a09-765794883524
2015-06-30 06:27:18 +00:00
Eric Dong 122d9317cf Refine the code, remove the useless code.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16112 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-16 07:01:03 +00:00
Jeff Fan 1a45b15eae Add type cast on variable before operation.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Eric Dong <Eric.Dong@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15778 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-08 05:52:01 +00:00
Eric Dong 720624cce0 Refine code to follow good coding style.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15636 6f19259b-4bc3-4df7-8a09-765794883524
2014-07-07 06:30:33 +00:00
Eric Dong 45295cf5a5 Refine code to make it more safely.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15592 6f19259b-4bc3-4df7-8a09-765794883524
2014-06-25 06:51:36 +00:00
Eric Dong be9304f33f Support RouteConfig function for BdsDxe driver.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Gao, Liming <liming,gao@intel.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15563 6f19259b-4bc3-4df7-8a09-765794883524
2014-06-18 02:19:50 +00:00
niruiyu 22d1f97835 BDS enhancement: enumerate & show all legacy boot options in Boot Manager so that user is able to boot any devices in the same type in Boot Manager without changing the legacy dev order.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11279 6f19259b-4bc3-4df7-8a09-765794883524
2011-01-28 02:36:26 +00:00
xli24 c6498c1d45 Fix the issue that ASSERT() at line 1391 incorrectly asserts when order list variable is empty.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10564 6f19259b-4bc3-4df7-8a09-765794883524
2010-06-03 08:49:46 +00:00
xli24 ce5fad4151 For BdsDxe module,
1. Fix the risk that local variable is pointed by global pointer, which may be used outside the variable scope.
2. Add more checking for pointers.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10536 6f19259b-4bc3-4df7-8a09-765794883524
2010-05-21 07:40:24 +00:00
hhtian 180a5a35cb Update the copyright notice format
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10414 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-23 16:28:26 +00:00
gikidy 9aa7ba01aa Update BDS boot option description string to use UNI file string in GenericBdsLib for localization.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9836 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-27 07:18:36 +00:00
gikidy a5c3c546ea Fix Boot Option appear twice while add a new boot option in some specific steps.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9738 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-14 04:42:45 +00:00
xli24 0c16f340a8 Minor code enhancement.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9724 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-13 03:30:59 +00:00
xli24 1ace000135 Minor code enhancement.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9692 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-08 04:10:38 +00:00
vanjeff 69533312bf set filename with device path for load file devices.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9370 6f19259b-4bc3-4df7-8a09-765794883524
2009-10-26 07:47:31 +00:00
klu2 7edfacbff8 Fix build broken issue for ICC 9.0
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8960 6f19259b-4bc3-4df7-8a09-765794883524
2009-07-17 01:40:55 +00:00
klu2 5caec787e1 Fix bug that some boot option can *not* be displayed correct in boot manager and boot maintain manager.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8956 6f19259b-4bc3-4df7-8a09-765794883524
2009-07-16 06:54:41 +00:00
klu2 7ec9caab92 Fix the potential issue that using integrate as BOOLEAN value in judgment.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8648 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-24 08:41:14 +00:00
klu2 5c08e11737 Move BdsDxe and GenericBdsLib to IntelFrameworkModulePkg, these modules need dependent on gEfiLegacyBiosProtocol to provide legacy boot support. But legacy boot is not described by PI/UEFI specification.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7354 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-23 07:24:55 +00:00