groff-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[groff] 01/01: Don't use `memcpy' with NULL input or output argument (#4


From: Werner LEMBERG
Subject: [groff] 01/01: Don't use `memcpy' with NULL input or output argument (#47160).
Date: Mon, 15 Feb 2016 23:08:13 +0000

wl pushed a commit to branch master
in repository groff.

commit dd9d0787a367404fa2a69234a98e7980236b60f4
Author: Bálint Réczey <address@hidden>
Date:   Mon Feb 15 23:55:37 2016 +0100

    Don't use `memcpy' with NULL input or output argument (#47160).
    
    * src/libs/libgroff/string.cpp (string::string, string::operator=):
    Implement it.
    
    * src/roff/troff/input.cpp (temp_iterator::temp_iterator): Implement
    it.
---
 ChangeLog                    |   10 ++++++++++
 src/libs/libgroff/string.cpp |    6 ++++--
 src/roff/troff/input.cpp     |    3 ++-
 3 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 700561a..b3cdf1d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2016-02-15  Bálint Réczey  <address@hidden>
+
+       Don't use `memcpy' with NULL input or output argument (#47160).
+
+       * src/libs/libgroff/string.cpp (string::string, string::operator=):
+       Implement it.
+
+       * src/roff/troff/input.cpp (temp_iterator::temp_iterator): Implement
+       it.
+
 2016-02-04  Carsten Kunze  <address@hidden>
 
        * tmac/s.tmac: Bugfix of previous commit simplified (and
diff --git a/src/libs/libgroff/string.cpp b/src/libs/libgroff/string.cpp
index da3b2dc..5614c04 100644
--- a/src/libs/libgroff/string.cpp
+++ b/src/libs/libgroff/string.cpp
@@ -98,7 +98,8 @@ string::string(const char *p)
   else {
     len = strlen(p);
     ptr = salloc(len, &sz);
-    memcpy(ptr, p, len);
+    if (len != 0)
+      memcpy(ptr, p, len);
   }
 }
 
@@ -141,7 +142,8 @@ string &string::operator=(const char *p)
     int slen = strlen(p);
     ptr = sfree_alloc(ptr, sz, slen, &sz);
     len = slen;
-    memcpy(ptr, p, len);
+    if (len != 0)
+      memcpy(ptr, p, len);
   }
   return *this;
 }
diff --git a/src/roff/troff/input.cpp b/src/roff/troff/input.cpp
index 9594f07..163cffa 100644
--- a/src/roff/troff/input.cpp
+++ b/src/roff/troff/input.cpp
@@ -3596,7 +3596,8 @@ inline
 temp_iterator::temp_iterator(const char *s, int len)
 {
   base = new unsigned char[len];
-  memcpy(base, s, len);
+  if (len > 0)
+    memcpy(base, s, len);
   ptr = base;
   eptr = base + len;
 }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]