[PATCH] EXC_BAD_ACCESS in SC_execute

From: Jade Koskela <jkoskela0(at)gmail(dot)com>
To: pgsql-odbc(at)postgresql(dot)org
Subject: [PATCH] EXC_BAD_ACCESS in SC_execute
Date: 2014-08-26 21:25:54
Message-ID: CAN5Zvqw5M--vSJyrYEoxRx8i=QZJ5pe9csZzfyC_e5EXXTQbqA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

Hello,

I am looking into dmp files which we collect when our application crashes.
Using google breakpad/stackwalking I am generating the stacktrace. The
crash looks like this:

Crash reason: EXC_BAD_ACCESS / 0x0000000d
Crash address: 0x0

Thread 10 (crashed)
0 psqlodbcw.so!SC_Execute + 0x10bd

I couldn't get the source line so I had to dig through the assembly.
I was able to determine the error is happening on line statement.c line
2191 (from the latest version in the repository).

numcols = QR_NumResultCols(tres);
(this expands to)
numcols = tres->fields->num_fields

The crash happens on the dereference of fields. It could be a null pointer,
I'm not sure because I can't reproduce the error.
Apparently EXC_BAD_ACCESS can be SIGSEGV or SIGBUS.
I have generated a patch to handle the null pointer case.

Attachment Content-Type Size
QR_NumResultCols-NullCheck.patch application/octet-stream 976 bytes

Responses

Browse pgsql-odbc by date

  From Date Subject
Next Message Jade Koskela 2014-08-28 18:00:16 debugging symbols
Previous Message Heikki Linnakangas 2014-08-18 13:29:38 Re: psqlodbc build with libpq on OS X