Bug#897892: zookeeper: ftbfs with GCC-8

Adrian Bunk bunk at debian.org
Sat Jun 23 18:51:14 BST 2018


Control: tags -1 - help

On Fri, May 04, 2018 at 12:24:12PM +0000, Matthias Klose wrote:
>...
> libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I./include -I./tests -I./generated -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Werror -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -MT zookeeper.lo -MD -MP -MF .deps/zookeeper.Tpo -c src/zookeeper.c  -fPIC -DPIC -o .libs/zookeeper.o
> src/zookeeper.c: In function 'format_endpoint_info':
> src/zookeeper.c:3469:21: error: '%d' directive writing between 1 and 5 bytes into a region of size between 0 and 127 [-Werror=format-overflow=]
>      sprintf(buf,"%s:%d",addrstr,ntohs(port));
>                      ^~
> src/zookeeper.c:3469:17: note: directive argument in the range [0, 65535]
>      sprintf(buf,"%s:%d",addrstr,ntohs(port));
>                  ^~~~~~~
> In file included from /usr/include/stdio.h:862,
>                  from ./include/zookeeper.h:29,
>                  from src/zookeeper.c:27:
> /usr/include/x86_64-linux-gnu/bits/stdio2.h:33:10: note: '__builtin___sprintf_chk' output between 3 and 134 bytes into a destination of size 128
>    return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
>           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>        __bos (__s), __fmt, __va_arg_pack ());
>        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> cc1: all warnings being treated as errors
>...

The relevant code is:

...
    static char buf[128];
    char addrstr[128];
...
    inet_ntop(ep->ss_family,inaddr,addrstr,sizeof(addrstr)-1);
    sprintf(buf,"%s:%d",addrstr,ntohs(port));
...


Both addrstr and buf have a size of 128.

After the inet_ntop() call addrstr might contain up to 128 characters 
(including \0 termination).

buf is a concatenation of addrstr, ':' and ntohs(port) into a string.
That's up to 127(addrstr) + 1(:) + 5(ntohs) + 1(\0) = 134 characters.

134 > 128

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed



More information about the pkg-java-maintainers mailing list