[Libreoffice-commits] core.git: tools/source

Stephan Bergmann (via logerrit) logerrit at kemper.freedesktop.org
Thu Jun 18 13:09:04 UTC 2020


 tools/source/misc/json_writer.cxx |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

New commits:
commit de32eb539bbcf291f9968ae12696e1317fdb855d
Author:     Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Thu Jun 18 11:29:41 2020 +0200
Commit:     Stephan Bergmann <sbergman at redhat.com>
CommitDate: Thu Jun 18 15:08:26 2020 +0200

    Avoid unhelpful -Werror=stringop-truncation
    
    ...emitted at least by recent GCC 11 trunk (even with --disable-optimized, where
    optimization level traditionally has some impact on what warnings of this kind
    are emitted exactly):
    
    > tools/source/misc/json_writer.cxx: In member function ‘tools::ScopedJsonWriterNode tools::JsonWriter::startNode(const char*)’:
    > tools/source/misc/json_writer.cxx:42:12: error: ‘char* strncpy(char*, const char*, size_t)’ output truncated before terminating nul copying 5 bytes from a string of the same length [-Werror=stringop-truncation]
    >    42 |     strncpy(mPos, "\": { ", 5);
    >       |     ~~~~~~~^~~~~~~~~~~~~~~~~~~
    
    etc.
    
    Change-Id: Id96964b178b61879cf2373c5b418f5c9df4a226f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96593
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
    Reviewed-by: Justin Luth <justin_luth at sil.org>
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>
    Tested-by: Jenkins

diff --git a/tools/source/misc/json_writer.cxx b/tools/source/misc/json_writer.cxx
index a233381038c4..12ff5eb37641 100644
--- a/tools/source/misc/json_writer.cxx
+++ b/tools/source/misc/json_writer.cxx
@@ -39,7 +39,7 @@ ScopedJsonWriterNode JsonWriter::startNode(const char* pNodeName)
     ++mPos;
     memcpy(mPos, pNodeName, len);
     mPos += len;
-    strncpy(mPos, "\": { ", 5);
+    memcpy(mPos, "\": { ", 5);
     mPos += 5;
     mStartNodeCount++;
     mbFirstFieldInNode = true;
@@ -66,7 +66,7 @@ void JsonWriter::put(const char* pPropName, const OUString& rPropVal)
     ++mPos;
     memcpy(mPos, pPropName, nPropNameLength);
     mPos += nPropNameLength;
-    strncpy(mPos, "\": \"", 4);
+    memcpy(mPos, "\": \"", 4);
     mPos += 4;
 
     // Convert from UTF-16 to UTF-8 and perform escaping
@@ -125,7 +125,7 @@ void JsonWriter::put(const char* pPropName, const OString& rPropVal)
     ++mPos;
     memcpy(mPos, pPropName, nPropNameLength);
     mPos += nPropNameLength;
-    strncpy(mPos, "\": \"", 4);
+    memcpy(mPos, "\": \"", 4);
     mPos += 4;
 
     // copy and perform escaping
@@ -169,7 +169,7 @@ void JsonWriter::put(const char* pPropName, const char* pPropVal)
     ++mPos;
     memcpy(mPos, pPropName, nPropNameLength);
     mPos += nPropNameLength;
-    strncpy(mPos, "\": \"", 4);
+    memcpy(mPos, "\": \"", 4);
     mPos += 4;
 
     // copy and perform escaping
@@ -215,7 +215,7 @@ void JsonWriter::put(const char* pPropName, int nPropVal)
     ++mPos;
     memcpy(mPos, pPropName, nPropNameLength);
     mPos += nPropNameLength;
-    strncpy(mPos, "\": ", 3);
+    memcpy(mPos, "\": ", 3);
     mPos += 3;
 
     mPos += sprintf(mPos, "%d", nPropVal);


More information about the Libreoffice-commits mailing list