Re: libmdb memory corruption (double free)
Jakob Egger <[email protected]> Fri, 25 Mar 2011 18:57:08 +0100
| Newsgroups | gmane.comp.db.mdb-tools.devel |
|---|---|
| Message-ID | <[email protected]> |
There's a memory overflow bug in the Memo-to-string function (character set conversion) somewhere, I fixed it but I still need to prepare it for github. Maybe I'll have time to sort through my changes on the weekend. Does your database by any chance contain large Memo fields? One workaround could be to compile MDB Tools with a larger bind size (I think the default is 10000, try using 200000). The bind size is declared in mdbtools.h, I think. I'd be happy to test your mdb file if you send it to me. Best regards, Jakob Egger PS: I find these memory-management-related bugs much easier to debug using valgrind rather than gdb. On 25.03.2011, at 10:37, Alex Mayrhofer wrote: > > Hello, > > I'm using mdbtools to export an Access database on a Linux machine. > Unfortunately, mdb-export crashes with memory corruption when processing > the database (after a couple of rows). A trace is included below - > unfortunately my gdb knowledge is not good enough to get around the heap > corruption, however, glibc provided a reasonable backtrace (included below). > > The problem seems to occur in mdb_col_to_string() - i've included what i > have below. > > I can't post the mdb file itself to the list due to copyright issues, > but i think i can email it to someone privately. I really appreciate any > help, since this is a show-stopper for me at the moment - i'm very > willing to debug more.. > > thanks, > > Alex Mayrhofer > > Backtrace: > > *** glibc detected *** mdb-export: double free or corruption (out): > 0x09d8cac8 *** > ======= Backtrace: ========= > /lib/i686/cmov/libc.so.6[0xb75d5764] > /lib/i686/cmov/libc.so.6(cfree+0x96)[0xb75d7966] > /usr/lib/libglib-2.0.so.0(g_free+0x36)[0xb7704446] > /usr/lib/libmdb.so.1(mdb_col_to_string+0x1ef)[0xb777e52f] > /usr/lib/libmdb.so.1[0xb777ebda] > /usr/lib/libmdb.so.1(mdb_read_row+0x228)[0xb777eef8] > /usr/lib/libmdb.so.1(mdb_fetch_row+0x9d)[0xb777efed] > mdb-export[0x8049207] > /lib/i686/cmov/libc.so.6(__libc_start_main+0xe5)[0xb757d455] > mdb-export[0x8048a61] > ======= Memory map: ======== > 08048000-0804a000 r-xp 00000000 08:01 95513 /usr/bin/mdb-export > 0804a000-0804b000 rw-p 00001000 08:01 95513 /usr/bin/mdb-export > 09d7e000-09d9f000 rw-p 09d7e000 00:00 0 [heap] > b6700000-b6721000 rw-p b6700000 00:00 0 > b6721000-b6800000 ---p b6721000 00:00 0 > b68e9000-b68f5000 r-xp 00000000 08:01 32451 /lib/libgcc_s.so.1 > b68f5000-b68f6000 rw-p 0000b000 08:01 32451 /lib/libgcc_s.so.1 > b68fd000-b753e000 rw-p b68fd000 00:00 0 > b753e000-b7566000 r-xp 00000000 08:01 93844 /usr/lib/libpcre.so.3.12.1 > b7566000-b7567000 rw-p 00027000 08:01 93844 /usr/lib/libpcre.so.3.12.1 > b7567000-b76bc000 r-xp 00000000 08:01 41015 /lib/i686/cmov/libc-2.7.so > b76bc000-b76bd000 r--p 00155000 08:01 41015 /lib/i686/cmov/libc-2.7.so > b76bd000-b76bf000 rw-p 00156000 08:01 41015 /lib/i686/cmov/libc-2.7.so > b76bf000-b76c3000 rw-p b76bf000 00:00 0 > b76c3000-b7777000 r-xp 00000000 08:01 96016 > /usr/lib/libglib-2.0.so.0.1600.6 > b7777000-b7778000 rw-p 000b4000 08:01 96016 > /usr/lib/libglib-2.0.so.0.1600.6 > b7778000-b7787000 r-xp 00000000 08:01 89764 /usr/lib/libmdb.so.1.0.0 > b7787000-b7788000 rw-p 0000e000 08:01 89764 /usr/lib/libmdb.so.1.0.0 > b778e000-b7791000 rw-p b778e000 00:00 0 > b7791000-b7792000 r-xp b7791000 00:00 0 [vdso] > b7792000-b77ac000 r-xp 00000000 08:01 35153 /lib/ld-2.7.so > b77ac000-b77ae000 rw-p 0001a000 08:01 35153 /lib/ld-2.7.so > bfe66000-bfe7b000 rw-p bffea000 00:00 0 [stack] > Aborted > > > ------------------------------------------------------------------------------ > Enable your software for Intel(R) Active Management Technology to meet the > growing manageability and security demands of your customers. Businesses > are taking advantage of Intel(R) vPro (TM) technology - will your software > be a part of the solution? Download the Intel(R) Manageability Checker > today! http://p.sf.net/sfu/intel-dev2devmar > _______________________________________________ > mdbtools-dev mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/mdbtools-dev ------------------------------------------------------------------------------ Enable your software for Intel(R) Active Management Technology to meet the growing manageability and security demands of your customers. Businesses are taking advantage of Intel(R) vPro (TM) technology - will your software be a part of the solution? Download the Intel(R) Manageability Checker today! http://p.sf.net/sfu/intel-dev2devmar