<div dir="auto"><div>This patch is</div><div dir="auto"><br></div><div dir="auto">Reviewed-by: Thomas Helland <<a href="mailto:thomashelland90@gmail.com">thomashelland90@gmail.com</a>><br><br><div class="gmail_quote" dir="auto"><div dir="ltr">Den tir. 17. jul. 2018, 01:40 skrev Caio Marcelo de Oliveira Filho <<a href="mailto:caio.oliveira@intel.com">caio.oliveira@intel.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">And also specify the maximum size when writing to static buffers. The<br>
warning below refers to the case where "str5" could be larger than<br>
"str5 - str4", then the strcat would have overlapping dst and src.<br>
<br>
Compiler doesn't pick up the bound from the snprintf above, so we make<br>
clear the bounds of str5 by using strncat() instead of strcat().<br>
<br>
../../src/util/tests/string_buffer/string_buffer_test.cpp: In member function ‘virtual void string_buffer_string_buffer_tests_Test::TestBody()’:<br>
../../src/util/tests/string_buffer/string_buffer_test.cpp:106:10: warning: ‘char* strcat(char*, const char*)’ accessing 81 or more bytes at offsets 48 and 128 may overlap 1 byte at offset 128 [-Wrestrict]<br>
    strcat(str4, str5);<br>
    ~~~~~~^~~~~~~~~~~~<br>
---<br>
 src/util/tests/string_buffer/string_buffer_test.cpp | 6 +++---<br>
 1 file changed, 3 insertions(+), 3 deletions(-)<br>
<br>
diff --git a/src/util/tests/string_buffer/string_buffer_test.cpp b/src/util/tests/string_buffer/string_buffer_test.cpp<br>
index 545f607fadd..afb6dfb2a19 100644<br>
--- a/src/util/tests/string_buffer/string_buffer_test.cpp<br>
+++ b/src/util/tests/string_buffer/string_buffer_test.cpp<br>
@@ -95,15 +95,15 @@ TEST_F(string_buffer, string_buffer_tests)<br>
    EXPECT_TRUE(strlen(buf->buf) == 0);<br>
<br>
    /* Test a string with some formatting */<br>
-   sprintf(str4, "Testing formatting %d, %f", 100, 1.0);<br>
+   snprintf(str4, sizeof(str4), "Testing formatting %d, %f", 100, 1.0);<br>
    EXPECT_TRUE(_mesa_string_buffer_printf(buf, "Testing formatting %d, %f", 100, 1.0));<br>
    EXPECT_TRUE(strcmp(buf->buf, str4) == 0);<br>
<br>
    /* Compile a string with some other formatting */<br>
-   sprintf(str5, "Testing formatting %d, %x", 100, 0xDEADBEAF);<br>
+   snprintf(str5, sizeof(str5), "Testing formatting %d, %x", 100, 0xDEADBEAF);<br>
<br>
    /* Concatenate str5 to str4 */<br>
-   strcat(str4, str5);<br>
+   strncat(str4, str5, sizeof(str5));<br>
<br>
    /* Now use the formatted append function again */<br>
    EXPECT_TRUE(_mesa_string_buffer_printf(buf, "Testing formatting %d, %x", 100, 0xDEADBEAF));<br>
-- <br>
2.18.0<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank" rel="noreferrer">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</blockquote></div></div></div>