View Issue Details

IDProjectCategoryView StatusLast Update
0002128GNUnettransport servicepublic2012-02-28 11:05
ReporterBart Polot Assigned ToMatthias Wachs  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Product Version0.9.1 
Target Version0.9.2Fixed in Version0.9.2 
Summary0002128: Blacklisting makes transport service crash
Description(gdb) bt
#0 0x00007fc16e9db636 in __strcmp_sse42 () from /lib/libc.so.6
#1 0x0000000000403fec in test_blacklisted (cls=<optimized out>, key=<optimized out>, value=<optimized out>) at gnunet-service-transport_blacklist.c:725
#2 0x00007fc16f9a7136 in GNUNET_CONTAINER_multihashmap_get_multiple (map=<optimized out>, key=0x15b43c8, it=0x403fe0 <test_blacklisted>, it_cls=0x0) at container_multihashmap.c:485
#3 0x000000000040550d in GST_blacklist_test_allowed (peer=0x15b43c8, transport_name=<optimized out>, cont=0x406700 <try_connect_if_allowed>, cont_cls=0x0) at gnunet-service-transport_blacklist.c:750
#4 0x00000000004066de in clients_handle_request_connect (cls=<optimized out>, client=0x15b2690, message=0x15b43c0) at gnunet-service-transport_clients.c:598
#5 0x00007fc16f9c2292 in GNUNET_SERVER_inject (server=0x15a3200, sender=0x15b2690, message=0x15b43c0) at server.c:709
#6 0x00007fc16f9c2db0 in client_message_tokenizer_callback (cls=<optimized out>, client=0x15b2690, message=<optimized out>) at server.c:931
#7 0x00007fc16f9c337e in GNUNET_SERVER_mst_receive (mst=0x15aa000, client_identity=0x15b2690, buf=0x0, size=0, purge=0, one_shot=-1) at server_mst.c:220
#8 0x00007fc16f9c2a5b in process_mst (client=0x15b2690, ret=<optimized out>) at server.c:779
#9 0x00007fc16f9a12b2 in receive_ready (cls=0x15b25b0, tc=0x7fffa23bf260) at connection.c:1193
#10 0x00007fc16f9c0566 in run_ready (ws=0x15a2280, rs=0x15a21f0) at scheduler.c:684
#11 GNUNET_SCHEDULER_run (task=<optimized out>, task_cls=<optimized out>) at scheduler.c:874
#12 0x00007fc16f9c8c26 in GNUNET_SERVICE_run (argc=3, argv=<optimized out>, serviceName=<optimized out>, opt=<optimized out>, task=<optimized out>, task_cls=0x0) at service.c:1712
#13 0x0000000000402e99 in main (argc=<optimized out>, argv=<optimized out>) at gnunet-service-transport.c:610
(gdb)
Steps To ReproduceRun a testcaste with BLACKLIST_TOPOLOGY and BLACKLIST_TRANSPORTS enabled, wait for the connection setup phase.

Ready example: test_testing_topology_blacklist in src/testing
Additional Information(gdb) bt full
#0 0x00007fc16e9db636 in __strcmp_sse42 () from /lib/libc.so.6
No symbol table info available.
#1 0x0000000000403fec in test_blacklisted (cls=<optimized out>, key=<optimized out>, value=<optimized out>) at gnunet-service-transport_blacklist.c:725
        transport_name = <optimized out>
        be = <optimized out>
#2 0x00007fc16f9a7136 in GNUNET_CONTAINER_multihashmap_get_multiple (map=<optimized out>, key=0x15b43c8, it=0x403fe0 <test_blacklisted>, it_cls=0x0) at container_multihashmap.c:485
        count = <optimized out>
        e = 0x15a3930
        n = 0x15a5da0
#3 0x000000000040550d in GST_blacklist_test_allowed (peer=0x15b43c8, transport_name=<optimized out>, cont=0x406700 <try_connect_if_allowed>, cont_cls=0x0) at gnunet-service-transport_blacklist.c:750
        bc = <optimized out>
        __FUNCTION__ = "GST_blacklist_test_allowed"
#4 0x00000000004066de in clients_handle_request_connect (cls=<optimized out>, client=0x15b2690, message=0x15b43c0) at gnunet-service-transport_clients.c:598
        trcm = 0x15b43c0
#5 0x00007fc16f9c2292 in GNUNET_SERVER_inject (server=0x15a3200, sender=0x15b2690, message=0x15b43c0) at server.c:709
        pos = 0x15a54e0
        mh = 0x40f928
        i = <optimized out>
        type = 374
        size = 72
        found = <optimized out>
        __FUNCTION__ = "GNUNET_SERVER_inject"
#6 0x00007fc16f9c2db0 in client_message_tokenizer_callback (cls=<optimized out>, client=0x15b2690, message=<optimized out>) at server.c:931
        server = <optimized out>
        sender = 0x15b2690
        ret = <optimized out>
#7 0x00007fc16f9c337e in GNUNET_SERVER_mst_receive (mst=0x15aa000, client_identity=0x15b2690, buf=0x0, size=0, purge=0, one_shot=-1) at server_mst.c:220
        hdr = <optimized out>
        delta = <optimized out>
        want = <optimized out>
        ibuf = 0x15b43c0 ""
        need_align = <optimized out>
        offset = <optimized out>
        ret = 1
        __FUNCTION__ = "GNUNET_SERVER_mst_receive"
#8 0x00007fc16f9c2a5b in process_mst (client=0x15b2690, ret=<optimized out>) at server.c:779
No locals.
#9 0x00007fc16f9a12b2 in receive_ready (cls=0x15b25b0, tc=0x7fffa23bf260) at connection.c:1193
        sh = 0x15b25b0
        now = <optimized out>
        buffer = 0x7fffa23af1b0 "\001$"
        ret = <optimized out>
        receiver = <optimized out>
        __FUNCTION__ = "receive_ready"
#10 0x00007fc16f9c0566 in run_ready (ws=0x15a2280, rs=0x15a21f0) at scheduler.c:684
        p = <optimized out>
        pos = 0x15b2770
        tc = {reason = GNUNET_SCHEDULER_REASON_READ_READY, read_ready = 0x15a21f0, write_ready = 0x15a2280}
#11 GNUNET_SCHEDULER_run (task=<optimized out>, task_cls=<optimized out>) at scheduler.c:874
        rs = 0x15a21f0
        ws = <optimized out>
        timeout = <optimized out>
        ret = <optimized out>
        shc_int = 0x15a2e30
        shc_term = 0x15a2ee0
        shc_quit = 0x15a3040
        shc_hup = 0x15a30f0
        shc_pipe = 0x15a2f90
        last_tr = 45
        busy_wait_warning = 0
        pr = <optimized out>
        c = 0 '\000'
        __FUNCTION__ = "GNUNET_SCHEDULER_run"
#12 0x00007fc16f9c8c26 in GNUNET_SERVICE_run (argc=3, argv=<optimized out>, serviceName=<optimized out>, opt=<optimized out>, task=<optimized out>, task_cls=0x0) at service.c:1712
        err = 0
        cfg_fn = 0x15a2090 "/tmp/test_mesh_small//9//gnunet-testing-config0gr1Qs"
        loglev = 0x0
        logfile = 0x0
        do_daemonize = 0
        i = <optimized out>
        skew_offset = 140735915226720
        skew_variance = 140468788661205
        clock_offset = <optimized out>
        sctx = {cfg = 0x15a1f60, server = 0x15a3200, addrs = 0x0, serviceName = 0x40f216 "transport", task = 0x402f90 <run>, task_cls = 0x0, v4_denied = 0x0, v6_denied = 0x0, v4_allowed = 0x15a2160, v6_allowed = 0x15a21a0,
          my_handlers = 0x15a33d0, addrlens = 0x0, lsocks = 0x15a20d0, timeout = {rel_value = 18446744073709551615}, ret = 1, ready_confirm_fd = -1, require_found = 1, match_uid = 1, match_gid = 1, options = GNUNET_SERVICE_OPTION_NONE}
        cfg = 0x15a1f60
        service_options = {{shortName = 99 'c', name = 0x7fc16f9ce427 "config", argumentHelp = 0x7fc16f9ce42e "FILENAME", description = 0x7fc16f9ce4d8 "use configuration file FILENAME", require_argument = 1,
            processor = 0x7fc16f9b41e0 <GNUNET_GETOPT_set_string>, scls = 0x7fffa23bf508}, {shortName = 100 'd', name = 0x7fc16f9cf220 "daemonize", argumentHelp = 0x0, description = 0x7fc16f9cf5d0 "do daemonize (detach from terminal)",
            require_argument = 0, processor = 0x7fc16f9b41d0 <GNUNET_GETOPT_set_one>, scls = 0x7fffa23bf53c}, {shortName = 104 'h', name = 0x7fc16f9ce442 "help", argumentHelp = 0x0, description = 0x7fc16f9ce437 "print this help",
            require_argument = 0, processor = 0x7fc16f9b3e60 <GNUNET_GETOPT_format_help_>, scls = 0x40f216}, {shortName = 76 'L', name = 0x7fc16f9ce447 "log", argumentHelp = 0x7fc16f9ce44b "LOGLEVEL",
            description = 0x7fc16f9ce4f8 "configure logging to use LOGLEVEL", require_argument = 1, processor = 0x7fc16f9b41e0 <GNUNET_GETOPT_set_string>, scls = 0x7fffa23bf510}, {shortName = 108 'l', name = 0x7fc16f9ce454 "logfile",
            argumentHelp = 0x7fc16f9cbbfe "LOGFILE", description = 0x7fc16f9ce520 "configure logging to write logs to LOGFILE", require_argument = 1, processor = 0x7fc16f9b41e0 <GNUNET_GETOPT_set_string>, scls = 0x7fffa23bf518}, {
            shortName = 118 'v', name = 0x7fc16f9ce45c "version", argumentHelp = 0x0, description = 0x7fc16f9ce464 "print the version number", require_argument = 0, processor = 0x7fc16f9b3e30 <GNUNET_GETOPT_print_version_>,
            scls = 0x7fc16f9ce47d}, {shortName = 0 '\000', name = 0x0, argumentHelp = 0x0, description = 0x0, require_argument = 0, processor = 0, scls = 0x0}}
        __FUNCTION__ = "GNUNET_SERVICE_run"
#13 0x0000000000402e99 in main (argc=<optimized out>, argv=<optimized out>) at gnunet-service-transport.c:610
No locals.






conf extract:
[transport]
PORT = 10002
AUTOSTART = YES

[testing]
NUM_PEERS = 16
WEAKRANDOM = YES
TOPOLOGY = CLIQUE
#CONNECT_TOPOLOGY = 2D_TORUS
BLACKLIST_TOPOLOGY = RING
BLACKLIST_TRANSPORTS = tcp udp http unix
TagsNo tags attached.

Activities

Matthias Wachs

2012-02-01 10:08

reporter   ~0005414

bug found:

gnunet-service-transport_clients.c:clients_handle_request_connect:


  (void) GST_blacklist_test_allowed (&trcm->peer, !!!!!!NULL !!!!!!, &try_connect_if_allowed,
                                     NULL);

Matthias Wachs

2012-02-01 10:14

reporter   ~0005415

fixed in rev 19592.

blacklist did not check if transport_name == NULL
transport_name == NULL is allowed if you want to check blacklisting for a specific peer and any transport

Issue History

Date Modified Username Field Change
2012-01-31 17:53 Bart Polot New Issue
2012-01-31 17:53 Bart Polot Status new => assigned
2012-01-31 17:53 Bart Polot Assigned To => Matthias Wachs
2012-02-01 10:08 Matthias Wachs Note Added: 0005414
2012-02-01 10:14 Matthias Wachs Note Added: 0005415
2012-02-01 10:14 Matthias Wachs Status assigned => resolved
2012-02-01 10:14 Matthias Wachs Resolution open => fixed
2012-02-03 14:01 Christian Grothoff Product Version Git master => 0.9.1
2012-02-03 14:01 Christian Grothoff Fixed in Version => 0.9.2
2012-02-03 14:01 Christian Grothoff Target Version => 0.9.2
2012-02-28 11:05 Christian Grothoff Status resolved => closed