diff mbox series

[for-2.12] tests: Silence false positive warning on generated test name

Message ID 20180323204341.1501664-1-eblake@redhat.com
State New
Headers show
Series [for-2.12] tests: Silence false positive warning on generated test name | expand

Commit Message

Eric Blake March 23, 2018, 8:43 p.m. UTC
Running 'make check' on rawhide with gcc 8.0.1 fails:

tests/test-visitor-serialization.c: In function 'main':
tests/test-visitor-serialization.c:1127:34: error: '/primitives/' directive writing 12 bytes into a region of size between 1 and 128 [-Werror=format-overflow=]

The warning is a false positive (we have two buffers of size 128,
so yes, if we FULLY used the first buffer, then sprint'ing it into
the second will overflow the second).  But in practice, our first
buffer will not be longer than "/visitor/serialization/String",
so sizing it smaller is enough to let gcc see that we don't
overflow the second.

Signed-off-by: Eric Blake <eblake@redhat.com>
---

Makes sense for me to take this through my QAPI tree, if it gets a review.

 tests/test-visitor-serialization.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Marc-André Lureau March 27, 2018, 10:05 a.m. UTC | #1
On Fri, Mar 23, 2018 at 9:43 PM, Eric Blake <eblake@redhat.com> wrote:
> Running 'make check' on rawhide with gcc 8.0.1 fails:
>
> tests/test-visitor-serialization.c: In function 'main':
> tests/test-visitor-serialization.c:1127:34: error: '/primitives/' directive writing 12 bytes into a region of size between 1 and 128 [-Werror=format-overflow=]
>
> The warning is a false positive (we have two buffers of size 128,
> so yes, if we FULLY used the first buffer, then sprint'ing it into
> the second will overflow the second).  But in practice, our first
> buffer will not be longer than "/visitor/serialization/String",
> so sizing it smaller is enough to let gcc see that we don't
> overflow the second.
>
> Signed-off-by: Eric Blake <eblake@redhat.com>

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>


> ---
>
> Makes sense for me to take this through my QAPI tree, if it gets a review.
>
>  tests/test-visitor-serialization.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tests/test-visitor-serialization.c b/tests/test-visitor-serialization.c
> index 438c18a0d64..d18d90db2c7 100644
> --- a/tests/test-visitor-serialization.c
> +++ b/tests/test-visitor-serialization.c
> @@ -1115,7 +1115,7 @@ static const SerializeOps visitors[] = {
>
>  static void add_visitor_type(const SerializeOps *ops)
>  {
> -    char testname_prefix[128];
> +    char testname_prefix[32];
>      char testname[128];
>      TestArgs *args;
>      int i = 0;
> --
> 2.14.3
>
>
diff mbox series

Patch

diff --git a/tests/test-visitor-serialization.c b/tests/test-visitor-serialization.c
index 438c18a0d64..d18d90db2c7 100644
--- a/tests/test-visitor-serialization.c
+++ b/tests/test-visitor-serialization.c
@@ -1115,7 +1115,7 @@  static const SerializeOps visitors[] = {

 static void add_visitor_type(const SerializeOps *ops)
 {
-    char testname_prefix[128];
+    char testname_prefix[32];
     char testname[128];
     TestArgs *args;
     int i = 0;