public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Gary Lin" <glin@suse.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	"liming.gao@intel.com" <liming.gao@intel.com>
Cc: Danmei Wei <danmei.wei@intel.com>,
	Farrah Chen <farrah.chen@intel.com>,
	Xudong Hao <xudong.hao@intel.com>
Subject: Re: [edk2-devel] Make edk2 fail on Red Hat 8.0
Date: Fri, 5 Jul 2019 07:57:11 +0000	[thread overview]
Message-ID: <20190705075659.GB5004@GaryWorkstation> (raw)
In-Reply-To: <15AE728890343D4F.21242@groups.io>

On Fri, Jul 05, 2019 at 07:33:17AM +0000,  Gary Lin  wrote:
> On Fri, Jul 05, 2019 at 07:25:18AM +0000,  Liming Gao  wrote:
> > Can you let me know your GCC compiler version?
> > 
> I also encountered the error. My system is openSUSE Tumbleweed, and the
> gcc version is 9.1.1.
> 
> It seems the new gcc is restricter on memset and strncat.
> 
Those warnings are legit.

For example:

  memset (Fv->FfsAttuibutes[Index].UiName, '\0', _MAX_PATH);

UiName is CHAR16, so this line should be

  memset (Fv->FfsAttuibutes[Index].UiName, '\0', _MAX_PATH * sizeof(CHAR16));

For those strncat() statements, the third parameter of strncat() stands
for the "available" space in the destination buffer, so using
sizeof(SRC_STR) is actually very dangerous because it doesn't guarantee
that the destination buffer has that many space for the string.

Gary Lin

> Gary Lin
> 
> > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of Chen, Farrah
> > Sent: Friday, July 05, 2019 3:10 PM
> > To: devel@edk2.groups.io
> > Cc: Hao, Xudong <xudong.hao@intel.com>; Wei, Danmei <danmei.wei@intel.com>
> > Subject: [edk2-devel] Make edk2 fail on Red Hat 8.0
> > 
> > Hi,
> > 
> > I tried to make ovmf with the latest commit: 0a487ef96bd6d2e0ac23323adab86f9949068ed6 on Red Hat 8.0, it failed, while it succeed on Red Hat 7.6.
> > With commit 4b04d9d73604080a42daf737c39b98d4e1245a51 I used several days ago, it works well on both RHEL8.0 and RHEL7.6.
> > 
> > Steps:
> > git clone https://github.com/tianocore/edk2.git
> > cd edk2
> > git submodule init
> > git submodule update -recursive
> > OvmfPkg/build.sh -a X64 -n 40
> > ...............
> > make -C FMMT
> > make[2]: Entering directory '/home/build/fan/edk2/BaseTools/Source/C/FMMT'
> > gcc  -c  -I .. -I ../Include/Common -I ../Include/ -I ../Include/IndustryStandard -I ../Common/ -I .. -I . -I ../Include/X64/  -MD -fshort-wchar -fno-strict-aliasing -fwrapv -fno-delete-null-pointer-checks -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-unused-result -nostdlib -g -O2  FmmtLib.c -o FmmtLib.o
> > FmmtLib.c: In function 'LibInitializeFvStruct':
> > FmmtLib.c:158:5: error: 'memset' used with length equal to number of elements without multiplication by element size [-Werror=memset-elt-size]
> >      memset (Fv->FfsAttuibutes[Index].UiName, '\0', _MAX_PATH);
> >      ^~~~~~
> > FmmtLib.c: In function 'LibFvHeaderAttributeToStr':
> > FmmtLib.c:2521:47: error: argument to 'sizeof' in 'strncat' call is the same expression as the source; did you mean to use the size of the destination? [-Werror=sizeof-pointer-memaccess]
> >   strncat (LocalStr, "[attributes] \n", sizeof("[attributes] \n"));
> >                                                ^
> > FmmtLib.c:2524:66: error: argument to 'sizeof' in 'strncat' call is the same expression as the source; did you mean to use the size of the destination? [-Werror=sizeof-pointer-memaccess]
> >      strncat (LocalStr, "EFI_READ_DISABLED_CAP = TRUE \n", sizeof ("EFI_READ_DISABLED_CAP = TRUE \n"));
> > .....................
> > 
> > And detailed log attached.
> > Could anyone provide some advice?
> > 
> > 
> > Thanks,
> > Fan
> > 
> > 
> > 
> > 
> > 
> 
> 
> 
> 

      parent reply	other threads:[~2019-07-05  8:01 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-05  7:09 Make edk2 fail on Red Hat 8.0 Chen, Farrah
2019-07-05  7:25 ` Liming Gao
2019-07-05  7:33   ` [edk2-devel] " Gary Lin
2019-07-05  7:34   ` Chen, Farrah
2019-07-05  7:53     ` Liming Gao
2019-07-05  9:14       ` Chen, Farrah
     [not found]   ` <15AE728890343D4F.21242@groups.io>
2019-07-05  7:57     ` Gary Lin [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190705075659.GB5004@GaryWorkstation \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox