Does anyone know why I get the "invalid pointer" (as described below) ?
Copy of repo is in http://aspodata.se/computing/urjtag/

Trying out new parport cable driver, I get:

$ git  branch -v
* master 51f539b1 web/htdocs/book/* rebuild
$ git st
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   MAINTAINERS
        modified:   configure.ac
        modified:   doc/UrJTAG.txt
        modified:   po/POTFILES.in
        modified:   src/tap/Makefile.am
        modified:   src/tap/cable_list.h

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        TAGS
        bindings/python/setup.py
        doc/howto_add_parport_cable.txt
        src/tap/cable/aspo.c
        zz

no changes added to commit (use "git add" and/or "git commit -a")
$ jtag -q
jtag> cable ASPO ppdev /dev/parport0
Initializing ppdev port /dev/parport0
jtag> frequency 100000
Setting TCK frequency to 100000 Hz
requested frequency 100000, now calibrating delay loop
new real frequency 349648, delay 1
new real frequency 229116, delay 3
new real frequency 232211, delay 6
new real frequency 231502, delay 13
new real frequency 232069, delay 30
new real frequency 225941, delay 69
new real frequency 217827, delay 155
new real frequency 209160, delay 337
new real frequency 193801, delay 704
new real frequency 171508, delay 1364
new real frequency 139842, delay 2339
new real frequency 119536, delay 3270
new real frequency 108728, delay 3908
done
jtag> quit
munmap_chunk(): invalid pointer
Aborted
$

It happens in first free in (urjtag/src/tap/cable.c):
void
urj_tap_cable_done (urj_cable_t *cable)
{
    urj_tap_cable_flush (cable, URJ_TAP_CABLE_COMPLETELY);
    if (cable->todo.data != NULL)
    {
        free (cable->todo.data);
        free (cable->done.data);
    }
    cable->driver->done (cable);
}

Running gdb, I get:

(gdb) print cable->todo.data
$4 = (urj_cable_queue_t *) 0x1002253d0
(gdb) print *(cable->todo.data)
$5 = {action = URJ_TAP_CABLE_CLOCK, arg = {clock = {tms = 0, tdi = 0, n = 0}, 
value = {sig = URJ_POD_CS_NONE, mask = 0, val = 0}, transfer = {len = 0, 
      in = 0x0, out = 0x0}, xferred = {len = 0, res = 0, out = 0x0}}}

118         if (cable->todo.data != NULL)
(gdb) n
120             free (cable->todo.data);
(gdb) n
munmap_chunk(): invalid pointer

Program received signal SIGABRT, Aborted.
0x00007ffff6dc7d4b in raise () from /lib64/libc.so.6

No cable nor dongle attached, wiggler and wiggler2 doesn't result in 
this problem, but I have not coded anything about cable->todo.

Regards,
/Karl Hammar





_______________________________________________
UrJTAG-development mailing list
UrJTAG-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/urjtag-development

Reply via email to