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
>
>
--
Marc-André Lureau