]> git.ipfire.org Git - thirdparty/libcgroup.git/commitdiff
gunit: Fix an snprintf() truncation warning
authorTom Hromatka <tom.hromatka@oracle.com>
Tue, 27 Apr 2021 17:19:40 +0000 (17:19 +0000)
committerTom Hromatka <tom.hromatka@oracle.com>
Tue, 27 Apr 2021 17:19:40 +0000 (17:19 +0000)
Fix the following snprintf() string truncation warning:

001-path.cpp: In member function ‘virtual void BuildPathV1Test::SetUp()’:
001-path.cpp:70:22: warning: ‘%s’ directive output may be truncated writing up to 820799 bytes into a re
gion of size 4081 [-Wformat-truncation=]
   70 |      "/sys/fs/cgroup/%s", cg_mount_table[i].name);
      |                      ^~
In file included from /usr/include/stdio.h:867,
                 from /usr/include/c++/9/cstdio:42,
                 from /usr/include/c++/9/ext/string_conversions.h:43,
                 from /usr/include/c++/9/bits/basic_string.h:6493,
                 from /usr/include/c++/9/string:55,
                 from /usr/include/c++/9/bits/locale_classes.h:40,
                 from /usr/include/c++/9/bits/ios_base.h:41,
                 from /usr/include/c++/9/ios:42,
                 from /usr/include/c++/9/ostream:38,
                 from ../../googletest/googletest/include/gtest/gtest.h:55,
                 from 001-path.cpp:22:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:67:35: note: ‘__builtin___snprintf_chk’ output between 16 an
d 820815 bytes into a destination of size 4096
   67 |   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   68 |        __bos (__s), __fmt, __va_arg_pack ());
      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Tom Hromatka <tom.hromatka@oracle.com>
gunit/001-path.cpp

index a0e3c8693e45bf7ea73573c2bac5b3df128e0ca2..2a8f7777f3f0d3163063f947dbca55650cc12162 100644 (file)
@@ -49,7 +49,7 @@ class BuildPathV1Test : public ::testing::Test {
                char NAMESPACE1[] = "ns1";
                char NAMESPACE5[] = "ns5";
                const int ENTRY_CNT = 6;
-               int i;
+               int i, ret;
 
                memset(&cg_mount_table, 0, sizeof(cg_mount_table));
                memset(cg_namespace_table, 0,
@@ -61,8 +61,10 @@ class BuildPathV1Test : public ::testing::Test {
                                 "controller%d", i);
                        cg_mount_table[i].index = i;
 
-                       snprintf(cg_mount_table[i].mount.path, FILENAME_MAX,
+                       ret = snprintf(cg_mount_table[i].mount.path, FILENAME_MAX,
                                 "/sys/fs/cgroup/%s", cg_mount_table[i].name);
+                       ASSERT_LT(ret, sizeof(cg_mount_table[i].mount.path));
+
                        cg_mount_table[i].mount.next = NULL;
                }