From 824f9a4d119779a6b47719d1f4d04450e2894fce Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Fri, 9 Apr 2004 18:02:05 +0000 Subject: [PATCH] Fixed bug #27928 (sqlite incorrectly handles invalid filenames). --- NEWS | 1 + ext/sqlite/libsqlite/src/os.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/NEWS b/NEWS index 657aa8ff2b..c2a300d5dc 100644 --- a/NEWS +++ b/NEWS @@ -10,6 +10,7 @@ PHP NEWS - Changed SQLite extension to use studlyCaps convention in its OO API. (Marcus) - Changed __construct() to always take precedence over old style constructor. (Dmitry) +- Fixed bug #27928 (sqlite incorrectly handles invalid filenames). (Ilia) - Fixed bug #27821 (xml_parse() segfaults when xml_set_object() is called from class method). (Andi, Rob) - Fixed bug #27742 (WDSL SOAP Parsing Schema bug). (Dmitry) diff --git a/ext/sqlite/libsqlite/src/os.c b/ext/sqlite/libsqlite/src/os.c index 2c57078305..12761bb2a3 100644 --- a/ext/sqlite/libsqlite/src/os.c +++ b/ext/sqlite/libsqlite/src/os.c @@ -34,6 +34,9 @@ # ifndef O_BINARY # define O_BINARY 0 # endif +# ifndef EISDIR +# define EISDIR 21 +# endif #endif @@ -464,6 +467,9 @@ int sqliteOsOpenReadWrite( id->dirfd = -1; id->fd = open(zFilename, O_RDWR|O_CREAT|O_LARGEFILE|O_BINARY, 0644); if( id->fd<0 ){ + if (errno == EISDIR) { + return SQLITE_CANTOPEN; + } id->fd = open(zFilename, O_RDONLY|O_LARGEFILE|O_BINARY); if( id->fd<0 ){ return SQLITE_CANTOPEN; -- 2.50.1