On Wed, Oct 15, 2014 at 2:21 AM, <[email protected]> wrote: > From: Roy Li <[email protected]> > > Calling strncpy with NULL second argument, even when the size is 0, > is undefined behavior, which leads to GCC to drop the check old > variable with NULL in following code. > > https://bugzilla.yoctoproject.org/show_bug.cgi?id=6743
FWIW this is correct way to fix it > > Signed-off-by: Roy Li <[email protected]> > --- > .../files/fix-a-Gcc-undefined-behavior.patch | 38 > ++++++++++++++++++++ > .../nfs-utils/nfs-utils_1.3.0.bb | 1 + > 2 files changed, 39 insertions(+) > create mode 100644 > meta/recipes-connectivity/nfs-utils/files/fix-a-Gcc-undefined-behavior.patch > > diff --git > a/meta/recipes-connectivity/nfs-utils/files/fix-a-Gcc-undefined-behavior.patch > > b/meta/recipes-connectivity/nfs-utils/files/fix-a-Gcc-undefined-behavior.patch > new file mode 100644 > index 0000000..5843ba0 > --- /dev/null > +++ > b/meta/recipes-connectivity/nfs-utils/files/fix-a-Gcc-undefined-behavior.patch > @@ -0,0 +1,38 @@ > +[PATCH] fix a Gcc undefined behavior > + > +Upstream-Status: Pending > + > +Calling strncpy with NULL second argument, even when the size is 0, > +is undefined behavior, which leads to GCC to drop the check old > +variable with NULL in following code. > + > +https://bugzilla.yoctoproject.org/show_bug.cgi?id=6743 > + > +Signed-off-by: Roy Li <[email protected]> > +--- > + support/export/client.c | 9 +++++++-- > + 1 file changed, 7 insertions(+), 2 deletions(-) > + > +diff --git a/support/export/client.c b/support/export/client.c > +index dbf47b9..a37ef69 100644 > +--- a/support/export/client.c > ++++ b/support/export/client.c > +@@ -482,8 +482,13 @@ add_name(char *old, const char *add) > + else > + cp = cp + strlen(cp); > + } > +- strncpy(new, old, cp-old); > +- new[cp-old] = 0; > ++ > ++ if (old) { > ++ strncpy(new, old, cp-old); > ++ new[cp-old] = 0; > ++ } else > ++ new[0] = 0; > ++ > + if (cp != old && !*cp) > + strcat(new, ","); > + strcat(new, add); > +-- > +1.7.10.4 > + > diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.0.bb > b/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.0.bb > index c813d7f..f1ef6d9 100644 > --- a/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.0.bb > +++ b/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.0.bb > @@ -31,6 +31,7 @@ SRC_URI = > "${KERNELORG_MIRROR}/linux/utils/nfs-utils/${PV}/nfs-utils-${PV}.tar.x > file://nfs-statd.service \ > file://nfs-utils-Do-not-pass-CFLAGS-to-gcc-while-building.patch \ > file://0001-statd-fixed-the-with-statdpath-flag.patch \ > + file://fix-a-Gcc-undefined-behavior.patch \ > " > > SRC_URI[md5sum] = "6e93a7997ca3a1eac56bf219adab72a8" > -- > 1.7.10.4 > > -- > _______________________________________________ > Openembedded-core mailing list > [email protected] > http://lists.openembedded.org/mailman/listinfo/openembedded-core -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
