while testing "ifdown enp6s0; sleep 2; ifup enp6s0, the current rfc6126
branch segvios on the send_multihop_request.

checking for ifp->buf.buf being null before making this call
appears to solve the problem.

    type=type@entry=10, len=len@entry=14) at message.c:957
957         buf->buf[buf->len++] = type;
(gdb) up
    prefix=0x1716368 "", plen=<optimized out>, src_prefix=0x1716379 "",
    src_plen=<optimized out>, seqno=<optimized out>,
    id=0x1716360 "\366\362m\377\376\266\240\035", hop_count=127)
    at message.c:1806
1806        start_message(buf, MESSAGE_MH_REQUEST, len);
(gdb) up
    plen=96 '`', src_prefix=0x1716379 "", src_plen=96 '`',
    seqno=<optimized out>, id=0x1716360 "\366\362m\377\376\266\240\035")
    at message.c:1904
1904                send_multihop_request(&ifp->buf, prefix, plen, src_prefix, 
src_plen,
(gdb) up
    at route.c:300
300             route_lost(src, oldmetric);
(gdb) down
    plen=96 '`', src_prefix=0x1716379 "", src_plen=96 '`',
    seqno=<optimized out>, id=0x1716360 "\366\362m\377\376\266\240\035")
    at message.c:1904
1904                send_multihop_request(&ifp->buf, prefix, plen, src_prefix, 
src_plen,
---
 message.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/message.c b/message.c
index 3ca92ff..83183fe 100644
--- a/message.c
+++ b/message.c
@@ -1901,8 +1901,10 @@ send_request_resend(const unsigned char *prefix, 
unsigned char plen,
     } else {
         struct interface *ifp;
         FOR_ALL_INTERFACES(ifp)
+           if(ifp->buf.buf) {
             send_multihop_request(&ifp->buf, prefix, plen, src_prefix, 
src_plen,
                                   seqno, id, 127);
+           }
     }
 }
 
-- 
2.7.4


_______________________________________________
Babel-users mailing list
[email protected]
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/babel-users

Reply via email to