> On Mar 12, 2016, at 3:39 PM, Daryl McDaniel <edk2-li...@mc2research.org> > wrote: > >> -----Original Message----- >> From: Laszlo Ersek [mailto:ler...@redhat.com] >> Sent: Thursday, February 25, 2016 2:01 AM >> To: David Woodhouse <dw...@infradead.org>; edk2-devel-01 >> <edk2-de...@ml01.01.org> >> Cc: Eric Dong <eric.d...@intel.com>; Cecil Sheng <cecil.sh...@hpe.com>; Ting >> Ye >> <ting...@intel.com>; Qiu Shumin <shumin....@intel.com>; Qin Long >> <qin.l...@intel.com>; Liming Gao <liming....@intel.com>; Yao Jiewen >> <jiewen....@intel.com>; Daryl McDaniel <edk2-li...@mc2research.org>; Jaben >> Carsey >> <jaben.car...@intel.com>; Samer El-Haj-Mahmoud <el...@hpe.com> >> Subject: Re: [edk2] [PATCH 0/4] free(NULL) and realloc(NULL, size) >> conformance >> improvements >> >> On 02/25/16 03:04, David Woodhouse wrote: >>> On Wed, 2016-02-24 at 22:13 +0100, Laszlo Ersek wrote: >>>> The free() wrapper in BaseCryptLib has a bug that has been triggered >>>> by David's recent OpenSSL work. The series fixes the bug, plus >>>> more instances of the same. >>> >>> Should we not just fix the underlying FreePool() function to do the >>> sane thing. >> >> It crossed my mind, but FreePool() is extremely widely used, it has a >> detailed interface contract, and its current behavior matches its >> interface contract. I'm not up to auditing all uses of FreePool(), to >> find the one that perversely enforces a failure return form >> FreePool(NULL). :) >> >>> Anyway, I've rebased my tree on top of yours, >> >> Thanks -- I'll push the first three patches to edk2 master in a minute, >> and I'll post a new version of the fourth. >> >>> split up the patch >>> changes into separate bisectable commits, and pushed my tree out again >>> to http://git.infradead.org/users/dwmw2/edk2.git >> >> I skimmed your fresh master -- the way the patch evolves looks >> excellent. I guess it took a lot of effort. >> >>> Both Cryptest.efi and the test boot of Fedora 22 are working correctly >>> at all stages. >> >> Perfect. >> >>> Again, the final two commits aren't ready yet. But the rest probably >>> are if they build OK on Windows. >>> >>> I do still want to kill that -w. And why in $DEITY's name do we not >>> already have -nostdinc in our CFLAGS for the whole EDK2 build? > > The -nostdinc equivalent for Visual Studio breaks the NT32 build and there is > no way to negate the flag once it has been specified. > > There would have to be a new target added just for NT32 builds. >
Would it be possible to fix the NT32 issue in a n INF file? It looks like the NT32 App is using == to override compiler flags? https://github.com/tianocore/edk2/blob/master/Nt32Pkg/Sec/SecMain.inf [BuildOptions] MSFT:*_*_IA32_DLINK_FLAGS == /out:"$(BIN_DIR)\SecMain.exe" /base:0x10000000 /pdb:"$(BIN_DIR)\SecMain.pdb" /LIBPATH:"$(VCINSTALLDIR)\Lib" /LIBPATH:"$(VCINSTALLDIR)\PlatformSdk\Lib" /NOLOGO /SUBSYSTEM:CONSOLE /NODEFAULTLIB /IGNORE:4086 /MAP /OPT:REF /DEBUG /MACHINE:I386 /LTCG Kernel32.lib MSVCRTD.lib Gdi32.lib User32.lib Winmm.lib Advapi32.lib MSFT:*_VS2015_IA32_DLINK_FLAGS == /out:"$(BIN_DIR)\SecMain.exe" /base:0x10000000 /pdb:"$(BIN_DIR)\SecMain.pdb" /LIBPATH:"$(VCINSTALLDIR)\Lib" /LIBPATH:"$(VCINSTALLDIR)\PlatformSdk\Lib" /NOLOGO /SUBSYSTEM:CONSOLE /NODEFAULTLIB /IGNORE:4086 /MAP /OPT:REF /DEBUG /MACHINE:I386 /LTCG Kernel32.lib MSVCRTD.lib vcruntimed.lib ucrtd.lib Gdi32.lib User32.lib Winmm.lib Advapi32.lib MSFT:*_VS2015x86_IA32_DLINK_FLAGS == /out:"$(BIN_DIR)\SecMain.exe" /base:0x10000000 /pdb:"$(BIN_DIR)\SecMain.pdb" /LIBPATH:"$(VCINSTALLDIR)\Lib" /LIBPATH:"$(VCINSTALLDIR)\PlatformSdk\Lib" /NOLOGO /SUBSYSTEM:CONSOLE /NODEFAULTLIB /IGNORE:4086 /MAP /OPT:REF /DEBUG /MACHINE:I386 /LTCG Kernel32.lib MSVCRTD.lib vcruntimed.lib ucrtd.lib Gdi32.lib User32.lib Winmm.lib Advapi32.lib MSFT:*_*_IA32_CC_FLAGS == /nologo /W4 /WX /Gy /c /D UNICODE /Od /FIAutoGen.h /EHs-c- /GF /Gs8192 /Zi /Gm /D _CRT_SECURE_NO_WARNINGS /D _CRT_SECURE_NO_DEPRECATE MSFT:*_*_IA32_PP_FLAGS == /nologo /E /TC /FIAutoGen.h MSFT:*_*_IA32_ASM_FLAGS == /nologo /W3 /WX /c /coff /Cx /Zd /W0 /Zi MSFT:*_*_IA32_ASMLINK_FLAGS == /link /nologo /tiny MSFT:*_*_X64_DLINK_FLAGS == /out:"$(BIN_DIR)\SecMain.exe" /base:0x10000000 /pdb:"$(BIN_DIR)\SecMain.pdb" /LIBPATH:"$(VCINSTALLDIR)\Lib\AMD64" /LIBPATH:"$(VCINSTALLDIR)\PlatformSdk\Lib\AMD64" /NOLOGO /SUBSYSTEM:CONSOLE /NODEFAULTLIB /IGNORE:4086 /MAP /OPT:REF /DEBUG /MACHINE:AMD64 /LTCG Kernel32.lib MSVCRTD.lib Gdi32.lib User32.lib Winmm.lib Advapi32.lib MSFT:*_VS2015_X64_DLINK_FLAGS == /out:"$(BIN_DIR)\SecMain.exe" /base:0x10000000 /pdb:"$(BIN_DIR)\SecMain.pdb" /LIBPATH:"$(VCINSTALLDIR)\Lib\AMD64" /LIBPATH:"$(VCINSTALLDIR)\PlatformSdk\Lib\AMD64" /NOLOGO /SUBSYSTEM:CONSOLE /NODEFAULTLIB /IGNORE:4086 /MAP /OPT:REF /DEBUG /MACHINE:AMD64 /LTCG Kernel32.lib MSVCRTD.lib vcruntimed.lib ucrtd.lib Gdi32.lib User32.lib Winmm.lib Advapi32.lib MSFT:*_VS2015x86_X64_DLINK_FLAGS == /out:"$(BIN_DIR)\SecMain.exe" /base:0x10000000 /pdb:"$(BIN_DIR)\SecMain.pdb" /LIBPATH:"$(VCINSTALLDIR)\Lib\AMD64" /LIBPATH:"$(VCINSTALLDIR)\PlatformSdk\Lib\AMD64" /NOLOGO /SUBSYSTEM:CONSOLE /NODEFAULTLIB /IGNORE:4086 /MAP /OPT:REF /DEBUG /MACHINE:AMD64 /LTCG Kernel32.lib MSVCRTD.lib vcruntimed.lib ucrtd.lib Gdi32.lib User32.lib Winmm.lib Advapi32.lib MSFT:*_*_X64_CC_FLAGS == /nologo /W4 /WX /Gy /c /D UNICODE /Od /FIAutoGen.h /EHs-c- /GF /Gs8192 /Zi /Gm /D _CRT_SECURE_NO_WARNINGS /D _CRT_SECURE_NO_DEPRECATE MSFT:*_*_X64_PP_FLAGS == /nologo /E /TC /FIAutoGen.h MSFT:*_*_X64_ASM_FLAGS == /nologo /W3 /WX /c /Cx /Zd /W0 /Zi MSFT:*_*_X64_ASMLINK_FLAGS == /link /nologo INTEL:*_*_IA32_DLINK_FLAGS == /out:"$(BIN_DIR)\SecMain.exe" /base:0x10000000 /pdb:"$(BIN_DIR)\SecMain.pdb" /LIBPATH:"C:\Program Files\Intel\Compiler\C++\9.1\IA32\Lib" /LIBPATH:"$(VCINSTALLDIR)\Lib" /LIBPATH:"$(VCINSTALLDIR)\PlatformSdk\Lib" /NOLOGO /SUBSYSTEM:CONSOLE /NODEFAULTLIB /IGNORE:4086 /MAP /OPT:REF /DEBUG /MACHINE:I386 /LTCG Kernel32.lib MSVCRTD.lib Gdi32.lib User32.lib Winmm.lib INTEL:*_*_IA32_CC_FLAGS == /nologo /W4 /WX /Gy /c /D UNICODE /Od /FIAutoGen.h /EHs-c- /GF /Gs8192 /Zi /Gm /D _CRT_SECURE_NO_WARNINGS /D _CRT_SECURE_NO_DEPRECATE INTEL:*_*_IA32_PP_FLAGS == /nologo /E /TC /FIAutoGen.h INTEL:*_*_IA32_ASM_FLAGS == /nologo /W3 /WX /c /coff /Cx /Zd /W0 /Zi INTEL:*_*_IA32_ASMLINK_FLAGS == /link /nologo /tiny Thanks, Andrew Fish >> I propose to involve our BaseTools overlords here... >> >> Thanks >> Laszlo > > Daryl McDaniel > > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel