ping

-R

On 10/15/2014 05:21 PM, [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

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"


--
Best Reagrds,
Roy | RongQing Li
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to