build failure with -D_FORTIFY_SOURCE=2

Ondrej Zajicek santiago at crfreenet.org
Sun Oct 25 22:32:33 CET 2015


On Sun, Oct 25, 2015 at 05:31:52PM +0300, Vladimir Lettiev wrote:
> Hi.
> 
> 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
> 
> 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?

No, memcpy would not work.

You could replace '(char *) (&block->packetlen)' with:

(char *) block + OFFSETOF(struct rip_block_auth, packetlen)

-- 
Elen sila lumenn' omentielvo

Ondrej 'Santiago' Zajicek (email: santiago at crfreenet.org)
OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net)
"To err is human -- to blame it on a computer is even more so."
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20151025/ec5d747a/attachment.asc>


More information about the Bird-users mailing list