On Sat, 21 May 2011, Jan Engelhardt wrote: > On Saturday 2011-05-21 23:41, Mr Dash Four wrote: > > >>> I could not get such segfaults at all. > >>> > >> > >> Nevertheless, I would recommend to mr-4 to have a ipset and libmnl compiled > >> with debug info, point to it via LD_LIBRARY_PATH, and then feed it through > >> valgrind with the same input. That may give some more insight. > >> > > I am willing to help if you let me know what I need to do, though this will be > > done in the coming days as I have other things I need to take care of and ran > > out of time, unfortunately. > > Get libmnl source (either git or tarball), and get ipset source > likewise, and for each, ./configure CFLAGS="-O0 -ggdb3" and make - no > install. > > Subsequently (substitute by appropriate paths/actions): > > LD_LIBRARY_PATH=$HOME/src/libmnl/src/.libs \ > libtool --mode=execute valgrind $HOME/src/ipset/src/ipset $action > > Reasonable recipe for any program :) With the original ipset-6.5 and restoring the privately sent test_ips it produces: ==2423== Memcheck, a memory error detector. ==2423== Copyright (C) 2002-2008, and GNU GPL'd, by Julian Seward et al. ==2423== Using LibVEX rev 1884, a library for dynamic binary translation. ==2423== Copyright (C) 2004-2008, and GNU GPL'd, by OpenWorks LLP. ==2423== Using valgrind-3.4.1-Debian, a dynamic binary instrumentation framework. ==2423== Copyright (C) 2000-2008, and GNU GPL'd, by Julian Seward et al. ==2423== For more details, rerun with: -v ==2423== ==2423== Syscall param socketcall.sendto(msg) points to uninitialised byte(s) ==2423== at 0x5118183: sendto (in /lib/libc-2.9.so) ==2423== by 0x4E2DBDB: mnl_socket_sendto (socket.c:183) ==2423== by 0x40CD06: ipset_mnl_query (mnl.c:95) ==2423== by 0x40B032: build_send_private_msg (session.c:1567) ==2423== by 0x40BAA1: ipset_cmd (session.c:1843) ==2423== by 0x40C307: create_type_get (types.c:239) ==2423== by 0x40C7DD: ipset_type_get (types.c:382) ==2423== by 0x4067CA: ipset_parse_typename (parse.c:1389) ==2423== by 0x40327E: parse_commandline (ipset.c:618) ==2423== by 0x402414: restore (ipset.c:197) ==2423== by 0x4033EF: parse_commandline (ipset.c:667) ==2423== by 0x403695: main (ipset.c:742) ==2423== Address 0x7ff000269 is on thread 1's stack ipset v6.5: Error in line 2807: Element cannot be added to the set: it's already added ==2423== ==2423== ERROR SUMMARY: 2 errors from 1 contexts (suppressed: 8 from 1) ==2423== malloc/free: in use at exit: 0 bytes in 0 blocks. ==2423== malloc/free: 17,327 allocs, 17,327 frees, 610,049 bytes allocated. ==2423== For counts of detected errors, rerun with: -v ==2423== Use --track-origins=yes to see where uninitialised values come from ==2423== All heap blocks were freed -- no leaks are possible. The same one with the patched ipset-6.5: ==2229== Memcheck, a memory error detector. ==2229== Copyright (C) 2002-2008, and GNU GPL'd, by Julian Seward et al. ==2229== Using LibVEX rev 1884, a library for dynamic binary translation. ==2229== Copyright (C) 2004-2008, and GNU GPL'd, by OpenWorks LLP. ==2229== Using valgrind-3.4.1-Debian, a dynamic binary instrumentation framework. ==2229== Copyright (C) 2000-2008, and GNU GPL'd, by Julian Seward et al. ==2229== For more details, rerun with: -v ==2229== ==2229== Syscall param socketcall.sendto(msg) points to uninitialised byte(s) ==2229== at 0x5118183: sendto (in /lib/libc-2.9.so) ==2229== by 0x4E2DBDB: mnl_socket_sendto (socket.c:183) ==2229== by 0x40CD06: ipset_mnl_query (mnl.c:95) ==2229== by 0x40B032: build_send_private_msg (session.c:1567) ==2229== by 0x40BAA1: ipset_cmd (session.c:1843) ==2229== by 0x40C307: create_type_get (types.c:239) ==2229== by 0x40C7DD: ipset_type_get (types.c:382) ==2229== by 0x4067CA: ipset_parse_typename (parse.c:1389) ==2229== by 0x40327E: parse_commandline (ipset.c:618) ==2229== by 0x402414: restore (ipset.c:197) ==2229== by 0x4033EF: parse_commandline (ipset.c:667) ==2229== by 0x403695: main (ipset.c:742) ==2229== Address 0x7ff000269 is on thread 1's stack ipset v6.5: Error in line 11191: Hash is full, cannot add more elements ==2229== ==2229== ERROR SUMMARY: 2 errors from 1 contexts (suppressed: 8 from 1) ==2229== malloc/free: in use at exit: 0 bytes in 0 blocks. ==2229== malloc/free: 67,277 allocs, 67,277 frees, 2,385,155 bytes allocated. ==2229== For counts of detected errors, rerun with: -v ==2229== Use --track-origins=yes to see where uninitialised values come from ==2229== All heap blocks were freed -- no leaks are possible. The uninitialized bytes are OK and there is no memory leak or corruption. Best regards, Jozsef - E-mail : kadlec@xxxxxxxxxxxxxxxxx, kadlec@xxxxxxxxxxxx PGP key : http://www.kfki.hu/~kadlec/pgp_public_key.txt Address : KFKI Research Institute for Particle and Nuclear Physics H-1525 Budapest 114, POB. 49, Hungary -- To unsubscribe from this list: send the line "unsubscribe netfilter" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html