Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Fwd: Problem with SQLite 3.7.6



On Mon, 18 Apr 2011, Matthias Drochner wrote:
apb%cequrux.com@localhost said:
Around line 24410 of sqlite3.c (in sqlite version 3.0.7.2) appears
this code:
[...]
  24416 #define osOpen      ((int(*)(const char*,int,...))aSyscall[0].pCurrent)

This is the fixed version of sqlite3. The bug was present
in 3.7.6 and 3.7.6.1.

Er, I meant 3.7.6.2, not 3.0.7.2,, but your comment is probably still valid.

However, NetBSD declares open() as
   int open(const char *, int, mode_t);
[...]
NetBSD is not compliant here

Sure? What version are you referring to?
Even 1.6Q (which I run on some DECstation) has the varargs declaration.

I foolishly believed the man page in NetBSD-current, which says:

    SYNOPSIS
         #include <fcntl.h>

         int
         open(const char *path, int flags, mode_t mode);

However, the actual <fcntl.h> header declares open the varargs way:

    int     open(const char *, int, ...);

it would probably make sense for sqlite to add an autoconf test for this, and to define osOpen with either "..." or "mode_t"

I'd say "don't panic", unless an OS shows up which gets it really wrong and which is worth supporting. There was a bug and it was a quite interesting bug, but it should be OK now.

OK.

--apb (Alan Barrett)


Home | Main Index | Thread Index | Old Index