Am Sonntag, den 02.12.2012, 22:49 +0100 schrieb Paul Menzel:

> using Debian Sid/unstable with self-built Evolution 3.4.4 and
> libsqlite3-0 3.7.14.1-1, Evolution crashed with a segmentation fault.
> 
>         pool[15522]: segfault at 5 ip b69bafe3 sp 8acf0850 error 6 in 
> libsqlite3.so.0.8.6[b69a4000+ac000]

After doing `apt-get source sqlite3` and building it myself with
`debuild -b -us -uc`, I have the source file `sqlite3.c` and I am able
to look at the code statements.

> The backtrace from the core dump file is the following.
> 
>         Thread 1 (Thread 0x8acf1b70 (LWP 15522)):
>         #0  0xb69bafe3 in pcache1Fetch (p=0xb8effb00, iKey=35985, 
> createFlag=2) at sqlite3.c:36093
>                 h = 1169
>                 nPinned = <optimized out>
>                 pCache = 0xb8effb00
>                 pGroup = 0xb8effb30
>                 pPage = 0xbf8ab0e8

The following code caused the segmentation fault.

        36093       *(void **)pPage->page.pExtra = 0;
        (gdb) l
        36088       pPage->iKey = iKey;
        36089       pPage->pNext = pCache->apHash[h];
        36090       pPage->pCache = pCache;
        36091       pPage->pLruPrev = 0;
        36092       pPage->pLruNext = 0;
        36093       *(void **)pPage->page.pExtra = 0;
        36094       pCache->apHash[h] = pPage;
        36095     }
        36096   
        36097   fetch_out:
        (gdb) p pPage
        $1 = (PgHdr1 *) 0xbf8ab0e8
        (gdb) p pPage->page.pExtra
        $2 = (void *) 0x5
        (gdb) info register
        eax            0x5      5
        ecx            0xb8effb30       -1192232144
        edx            0x491    1169
        ebx            0xb6a51d3c       -1230693060
        esp            0x8acf0850       0x8acf0850
        ebp            0xb8effb00       0xb8effb00
        esi            0xbf8ab0e8       -1081429784
        edi            0xb8effb00       -1192232192
        eip            0xb69bafe3       0xb69bafe3 <pcache1Fetch+755>
        eflags         0x10212  [ AF IF RF ]
        cs             0x73     115
        ss             0x7b     123
        ds             0x7b     123
        es             0x7b     123
        fs             0x0      0
        gs             0x33     51

As

    *(void **)pPage->page.pExtra = 0;

is above my basic C knowledge, maybe somebody sees if there is a reason
for the segfault here. Otherwise Richard is probably right, that the
heap corruption is caused by some other program.


Thanks,

Paul

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to