[Libreoffice] [PATCH] [REVIEW:3-5, 3-5-0] fdo#34432 ODBC crash on 64 bits

Lionel Elie Mamane lionel at mamane.lu
Mon Jan 30 08:56:09 PST 2012


On Mon, Jan 30, 2012 at 04:55:51PM +0100, Stephan Bergmann wrote:
> On 01/30/2012 03:43 PM, Lionel Elie Mamane wrote:

>> I attach here the "less invasive" variant originally meant for
>> libreoffice-3-5.

> My SQL knowledge is actually zero.  For example, I have no idea
> where to look to verify that for some SQL_ATTR_CURSOR_TYPE, say,
> SQLGetStmtAttr expects to find a buffer of type SQLULEN to write
> into.

There is a table at

http://msdn.microsoft.com/en-us/library/windows/desktop/ms712631(v=vs.85).aspx#ec7a5a5f-5f58-4cf8-b9b9-71b613d9c9b4_h

For most of the cases that interest us, the second column starts with
"An SQLULEN value that specifies (...)".

For example for SQL_ATTR_FETCH_BOOKMARK_PTR, it says "A SQLLEN * that
points to a binary bookmark value". In these cases (pointer to a
sequence of characters or sequence of bytes or ...), the size of the
memory area pointed to by the pointer is in the "StringLength"
argument, or some special values, e.g. to say "null-terminated string
of unspecified length" (SQL_NTS). The details of that are near the top
of that page.

See also
http://msdn.microsoft.com/en-us/library/windows/desktop/ms715438(v=vs.85).aspx
for SQLGetStmtAttr.

-- 
Lionel


More information about the LibreOffice mailing list