[mrtdump branch] Segfault when using a long filename for mrtdump

Baptiste Jonglez baptiste at bitsofnetworks.org
Tue Apr 26 16:46:19 CEST 2016


Hi,

I have been experimenting with the mrtdump branch (commit cc4eee62) on
Debian jessie.

However, when using a moderately long filename, Bird crashes.
For instance:

    birdc6 'mrtdump routes to "/bird/mrtdump/rib.ipv6.20160426.1209"'
    BIRD 1.5.0 ready.
    Connection closed by server.

The logs are the following:

    bird6[8314]: Unable to open file "<too-long>" for MRT dump of table master
    systemd[1]: bird6.service: main process exited, code=killed, status=11/SEGV
    systemd[1]: Unit bird6.service entered failed state.
    kernel: bird6[8314]: segfault at 18 ip 00007fb05162a905 sp 00007ffe1194f5a0 error 4 in bird6[7fb051602000+76000]

It looks like TM_DATETIME_BUFFER_SIZE, as used in tm_format_datetime(), is
really too small (32 bytes).  Also, there seems to be an issue with error
handling (segfault when tm_format_datetime returns unexpected data).

When defining a higher value for TM_DATETIME_BUFFER_SIZE, bird does not
crash anymore, but there is certainly a better solution.

Thanks,
Baptiste
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20160426/6f19e018/attachment.asc>


More information about the Bird-users mailing list