View Issue Details

IDProjectCategoryView StatusLast Update
0001664GNUnetcore servicepublic2011-02-24 15:53
Reportertoelke Assigned Totoelke  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Summary0001664: Use after free in core_api.c
Description==14607== Jump to the invalid address stated on the next line
==14607== at 0x0: ???
==14607== by 0x4E2AAA3: disconnect_and_free_peer_entry (core_api.c:435)
==14607== by 0x524F92C: GNUNET_CONTAINER_multihashmap_iterate (container_multihashmap.c:211)
==14607== by 0x4E2AD28: reconnect_later (core_api.c:469)
==14607== by 0x4E2C075: main_notify_handler (core_api.c:833)
==14607== by 0x52443B7: receive_helper (client.c:515)
==14607== by 0x524AC46: receive_ready (connection.c:1189)
==14607== by 0x5263B74: run_ready (scheduler.c:643)
==14607== by 0x5263FD0: GNUNET_SCHEDULER_run (scheduler.c:789)
==14607== by 0x52609BD: GNUNET_PROGRAM_run (program.c:227)
==14607== by 0x402FF6: main (gnunet-daemon-vpn.c:491)
==14607== Address 0x0 is not stack'd, malloc'd or (recently) free'd

(CORE_disconnect iterates over a hashmap, gives the handle as cls to the iterator and then frees the handle.)
TagsNo tags attached.

Activities

root

2011-02-24 14:26

administrator   ~0004262

Are these the lines 434-436 in your code as well:

 if (h->disconnects != NULL)
    h->disconnects (h->cls,
                    &pr->peer);

Or is the 'if' clause missing somehow?

toelke

2011-02-24 14:44

reporter   ~0004263

Yes. I have a clean checked out svn, revision 14527.

The problem persists after "make clean".

toelke

2011-02-24 14:49

reporter   ~0004264

I said "use after free" because I thought that multihashmap_iterate might be "just" a scheduler-call, but it iterates directly.

toelke

2011-02-24 15:20

reporter   ~0004267

Fixed, this was not a bug in CORE but in the mock-mesh.

Valgrind reported a wrong stack-trace.

Issue History

Date Modified Username Field Change
2011-02-24 12:03 toelke New Issue
2011-02-24 14:26 root Note Added: 0004262
2011-02-24 14:27 root Status new => feedback
2011-02-24 14:44 toelke Note Added: 0004263
2011-02-24 14:49 toelke Note Added: 0004264
2011-02-24 15:20 toelke Note Added: 0004267
2011-02-24 15:53 toelke Assigned To => toelke
2011-02-24 15:53 toelke Status feedback => closed
2011-02-24 15:53 toelke Resolution open => fixed