I found the problem of the double free. bold lines are my changes. if I put in comment the first row in bold or "_pcap_close0 (cap)" before the next bold line its work.
"*handle is null"* is printed only if the first row in bold is in comment. 1) why g_free free "_tmp16_" (cap) ? 2) what g_free put in cap which is free but not NULL? #define _pcap_close0(var) ((var == NULL) ? NULL : (var = (pcap_close (var), NULL))) tmp18_ = pcap_next (_tmp16_, &_tmp17_); (&header); header = _tmp17_; _tmp19_ = _tmp18_; _tmp19__length1 = -1; *//_tmp19_ = (g_free (_tmp19_), NULL);* _tmp20_ = stdout; _tmp21_ = header; _tmp22_ = _tmp21_.len; fprintf (_tmp20_, "Got packet caplen = %d\n", (gint) _tmp22_); result = 0; _pcap_close0 (cap); *printf("_pcap_close in 157\n");* *if(cap == NULL ) { printf("handle is null\n"); }* _g_free0 (dev); errbuf = (g_free (errbuf), NULL); (&header); packet = (g_free (packet), NULL); return result; } On 19 June 2013 22:03, Nadav Vinik <nadav...@gmail.com> wrote: > Hello > > I got this error only if cap.next catch packet with len more then zero: > > /*packet = */cap.next(out header); > stdout.printf("Got packet caplen = %d\n", header.len); > > I convert the code from "a.c" which it run well there. > taken from: > http://www.tcpdump.org/pcap.html > > pcap vapi taken from: > https://github.com/apmasell/vapis/blob/master/libpcap.vapi > > > Vala 0.20.1 > > Thanks > Nadav > > $ sudo ./gtk_foobar_sample > Got packet caplen = 90 > *** Error in `./gtk_foobar_sample': double free or corruption (!prev): > 0x00000000018e4370 *** > ======= Backtrace: ========= > /lib/x86_64-linux-gnu/libc.so.6(+0x80a46)[0x7f85cd0d6a46] > /usr/lib/x86_64-linux-gnu/libpcap.so.0.8(+0x696a)[0x7f85cd42496a] > /usr/lib/x86_64-linux-gnu/libpcap.so.0.8(pcap_close+0x1e)[0x7f85cd42b2fe] > ./gtk_foobar_sample(main+0xd5)[0x4012f5] > /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7f85cd077ea5] > ./gtk_foobar_sample[0x40139d] > ======= Memory map: ======== > 00400000-00403000 r-xp 00000000 08:0b 13320688 > /media/debian-home/nadav3/tmp/gtk-foobar-sample/src/gtk_foobar_sample > 00602000-00603000 r--p 00002000 08:0b 13320688 > /media/debian-home/nadav3/tmp/gtk-foobar-sample/src/gtk_foobar_sample > 00603000-00604000 rw-p 00003000 08:0b 13320688 > /media/debian-home/nadav3/tmp/gtk-foobar-sample/src/gtk_foobar_sample > 018d9000-018fa000 rw-p 00000000 00:00 0 > [heap] > 7f85cc7dc000-7f85cc7f0000 r-xp 00000000 08:01 1202110 > /lib/x86_64-linux-gnu/libgcc_s.so.1 > 7f85cc7f0000-7f85cc9f0000 ---p 00014000 08:01 1202110 > /lib/x86_64-linux-gnu/libgcc_s.so.1 > 7f85cc9f0000-7f85cc9f1000 r--p 00014000 08:01 1202110 > /lib/x86_64-linux-gnu/libgcc_s.so.1 > 7f85cc9f1000-7f85cc9f2000 rw-p 00015000 08:01 1202110 > /lib/x86_64-linux-gnu/libgcc_s.so.1 > 7f85cc9f2000-7f85cca0a000 r-xp 00000000 08:01 1202290 > /lib/x86_64-linux-gnu/libpthread-2.17.so > 7f85cca0a000-7f85ccc09000 ---p 00018000 08:01 1202290 > /lib/x86_64-linux-gnu/libpthread-2.17.so > 7f85ccc09000-7f85ccc0a000 r--p 00017000 08:01 1202290 > /lib/x86_64-linux-gnu/libpthread-2.17.so > 7f85ccc0a000-7f85ccc0b000 rw-p 00018000 08:01 1202290 > /lib/x86_64-linux-gnu/libpthread-2.17.so > 7f85ccc0b000-7f85ccc0f000 rw-p 00000000 00:00 0 > 7f85ccc0f000-7f85ccc4c000 r-xp 00000000 08:01 1202713 > /lib/x86_64-linux-gnu/libpcre.so.3.13.1 > 7f85ccc4c000-7f85cce4c000 ---p 0003d000 08:01 1202713 > /lib/x86_64-linux-gnu/libpcre.so.3.13.1 > 7f85cce4c000-7f85cce4d000 r--p 0003d000 08:01 1202713 > /lib/x86_64-linux-gnu/libpcre.so.3.13.1 > 7f85cce4d000-7f85cce4e000 rw-p 0003e000 08:01 1202713 > /lib/x86_64-linux-gnu/libpcre.so.3.13.1 > 7f85cce4e000-7f85cce55000 r-xp 00000000 08:01 360731 > /usr/lib/x86_64-linux-gnu/libffi.so.6.0.1 > 7f85cce55000-7f85cd054000 ---p 00007000 08:01 360731 > /usr/lib/x86_64-linux-gnu/libffi.so.6.0.1 > 7f85cd054000-7f85cd055000 r--p 00006000 08:01 360731 > /usr/lib/x86_64-linux-gnu/libffi.so.6.0.1 > 7f85cd055000-7f85cd056000 rw-p 00007000 08:01 360731 > /usr/lib/x86_64-linux-gnu/libffi.so.6.0.1 > 7f85cd056000-7f85cd214000 r-xp 00000000 08:01 1202232 > /lib/x86_64-linux-gnu/libc-2.17.so > 7f85cd214000-7f85cd413000 ---p 001be000 08:01 1202232 > /lib/x86_64-linux-gnu/libc-2.17.so > 7f85cd413000-7f85cd417000 r--p 001bd000 08:01 1202232 > /lib/x86_64-linux-gnu/libc-2.17.so > 7f85cd417000-7f85cd419000 rw-p 001c1000 08:01 1202232 > /lib/x86_64-linux-gnu/libc-2.17.so > 7f85cd419000-7f85cd41e000 rw-p 00000000 00:00 0 > 7f85cd41e000-7f85cd455000 r-xp 00000000 08:01 102383 > /usr/lib/x86_64-linux-gnu/libpcap.so.1.3.0 > 7f85cd455000-7f85cd654000 ---p 00037000 08:01 102383 > /usr/lib/x86_64-linux-gnu/libpcap.so.1.3.0 > 7f85cd654000-7f85cd656000 r--p 00036000 08:01 102383 > /usr/lib/x86_64-linux-gnu/libpcap.so.1.3.0 > 7f85cd656000-7f85cd657000 rw-p 00038000 08:01 102383 > /usr/lib/x86_64-linux-gnu/libpcap.so.1.3.0 > 7f85cd657000-7f85cd658000 rw-p 00000000 00:00 0 > 7f85cd658000-7f85cd751000 r-xp 00000000 08:01 1201960 > /lib/x86_64-linux-gnu/libglib-2.0.so.0.3600.0 > 7f85cd751000-7f85cd951000 ---p 000f9000 08:01 1201960 > /lib/x86_64-linux-gnu/libglib-2.0.so.0.3600.0 > 7f85cd951000-7f85cd952000 r--p 000f9000 08:01 1201960 > /lib/x86_64-linux-gnu/libglib-2.0.so.0.3600.0 > 7f85cd952000-7f85cd953000 rw-p 000fa000 08:01 1201960 > /lib/x86_64-linux-gnu/libglib-2.0.so.0.3600.0 > 7f85cd953000-7f85cd954000 rw-p 00000000 00:00 0 > 7f85cd954000-7f85cd9a1000 r-xp 00000000 08:01 359889 > /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3600.0 > 7f85cd9a1000-7f85cdba1000 ---p 0004d000 08:01 359889 > /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3600.0 > 7f85cdba1000-7f85cdba2000 r--p 0004d000 08:01 359889 > /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3600.0 > 7f85cdba2000-7f85cdba3000 rw-p 0004e000 08:01 359889 > /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3600.0 > 7f85cdba3000-7f85cdbc6000 r-xp 00000000 08:01 1202124 > /lib/x86_64-linux-gnu/ld-2.17.so > 7f85cdd8b000-7f85cdd90000 rw-p 00000000 00:00 0 > 7f85cddc1000-7f85cddc5000 rw-p 00000000 00:00 0 > 7f85cddc5000-7f85cddc6000 r--p 00022000 08:01 1202124 > /lib/x86_64-linux-gnu/ld-2.17.so > 7f85cddc6000-7f85cddc8000 rw-p 00023000 08:01 1202124 > /lib/x86_64-linux-gnu/ld-2.17.so > 7fffbe772000-7fffbe793000 rw-p 00000000 00:00 0 > [stack] > 7fffbe7fe000-7fffbe800000 r-xp 00000000 00:00 0 > [vdso] > ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 > [vsyscall] > > > -- > הבלוג שלי: > http://nadavvin.com > > > > -- > הבלוג שלי: > http://nadavvin.com > -- הבלוג שלי: http://nadavvin.com _______________________________________________ vala-list mailing list vala-list@gnome.org https://mail.gnome.org/mailman/listinfo/vala-list