build failure with -D_FORTIFY_SOURCE=2

Vladimir Lettiev thecrux at
Sun Oct 25 15:31:52 CET 2015


Just got a build failure with recent gcc with enabled option FORTIFY_SOURCE=2:

In function 'strncpy',
    inlined from 'rip_outgoing_authentication' at ../../../proto/rip/auth.c:134:5:
/usr/include/bits/string3.h:120:10: error: call to __builtin___strncpy_chk will always overflow destination buff
   return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
make[1]: *** [auth.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/usr/src/RPM/BUILD/bird-1.5.0/build-bird6/proto/rip'
make: *** [subdir] Error 2
make: Leaving directory `/usr/src/RPM/BUILD/bird-1.5.0/build-bird6'

There is proto/rip/auth.c:134:

    strncpy( (char *) (&block->packetlen), passwd->password, 16);

destination packetlen is u16, so gcc thinks it is overflow.

Is it possible to change strncpy with memcpy?

Vladimir Lettiev aka crux ✉ theCrux at

More information about the Bird-users mailing list