iliaa           Sat Sep 16 18:10:32 2006 UTC

  Modified files:              (Branch: PHP_5_2)
    /php-src/ext/sqlite sqlite.c pdo_sqlite2.c 
    /php-src/ext/com_dotnet     com_persist.c 
  Log:
  Added missing validation checks around expand_filepath()
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/sqlite/sqlite.c?r1=1.166.2.13.2.3&r2=1.166.2.13.2.4&diff_format=u
Index: php-src/ext/sqlite/sqlite.c
diff -u php-src/ext/sqlite/sqlite.c:1.166.2.13.2.3 
php-src/ext/sqlite/sqlite.c:1.166.2.13.2.4
--- php-src/ext/sqlite/sqlite.c:1.166.2.13.2.3  Thu Jun 15 18:33:09 2006
+++ php-src/ext/sqlite/sqlite.c Sat Sep 16 18:10:32 2006
@@ -17,7 +17,7 @@
    |          Marcus Boerger <[EMAIL PROTECTED]>                              |
    +----------------------------------------------------------------------+
 
-   $Id: sqlite.c,v 1.166.2.13.2.3 2006/06/15 18:33:09 dmitry Exp $
+   $Id: sqlite.c,v 1.166.2.13.2.4 2006/09/16 18:10:32 iliaa Exp $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -1133,7 +1133,7 @@
 {
        php_info_print_table_start();
        php_info_print_table_header(2, "SQLite support", "enabled");
-       php_info_print_table_row(2, "PECL Module version", 
PHP_SQLITE_MODULE_VERSION " $Id: sqlite.c,v 1.166.2.13.2.3 2006/06/15 18:33:09 
dmitry Exp $");
+       php_info_print_table_row(2, "PECL Module version", 
PHP_SQLITE_MODULE_VERSION " $Id: sqlite.c,v 1.166.2.13.2.4 2006/09/16 18:10:32 
iliaa Exp $");
        php_info_print_table_row(2, "SQLite Library", sqlite_libversion());
        php_info_print_table_row(2, "SQLite Encoding", sqlite_libencoding());
        php_info_print_table_end();
@@ -1237,13 +1237,13 @@
 
        if (strncmp(filename, ":memory:", sizeof(":memory:") - 1)) {
                /* resolve the fully-qualified path name to use as the hash key 
*/
-               fullpath = expand_filepath(filename, NULL TSRMLS_CC);
-
-               if (PG(safe_mode) && (!php_checkuid(fullpath, NULL, 
CHECKUID_CHECK_FILE_AND_DIR))) {
+               if (!(fullpath = expand_filepath(filename, NULL TSRMLS_CC))) {
                        RETURN_FALSE;
                }
 
-               if (php_check_open_basedir(fullpath TSRMLS_CC)) {
+               if ((PG(safe_mode) && (!php_checkuid(fullpath, NULL, 
CHECKUID_CHECK_FILE_AND_DIR))) || 
+                               php_check_open_basedir(fullpath TSRMLS_CC)) {
+                       efree(fullpath);
                        RETURN_FALSE;
                }
        } else {
@@ -1313,11 +1313,8 @@
 
        if (strncmp(filename, ":memory:", sizeof(":memory:") - 1)) {
                /* resolve the fully-qualified path name to use as the hash key 
*/
-               fullpath = expand_filepath(filename, NULL TSRMLS_CC);
-
-               if (PG(safe_mode) && (!php_checkuid(fullpath, NULL, 
CHECKUID_CHECK_FILE_AND_DIR))) {
+               if (!(fullpath = expand_filepath(filename, NULL TSRMLS_CC))) {
                        php_std_error_handling();
-                       efree(fullpath);
                        if (object) {
                                RETURN_NULL();
                        } else {
@@ -1325,7 +1322,8 @@
                        }
                }
 
-               if (php_check_open_basedir(fullpath TSRMLS_CC)) {
+               if ((PG(safe_mode) && (!php_checkuid(fullpath, NULL, 
CHECKUID_CHECK_FILE_AND_DIR))) ||
+                               php_check_open_basedir(fullpath TSRMLS_CC)) {
                        php_std_error_handling();
                        efree(fullpath);
                        if (object) {
@@ -1334,7 +1332,6 @@
                                RETURN_FALSE;
                        }
                }
-
        }
 
        php_sqlite_open(fullpath ? fullpath : filename, (int)mode, NULL, 
return_value, errmsg, object TSRMLS_CC);
@@ -1368,15 +1365,13 @@
 
        if (strncmp(filename, ":memory:", sizeof(":memory:") - 1)) {
                /* resolve the fully-qualified path name to use as the hash key 
*/
-               fullpath = expand_filepath(filename, NULL TSRMLS_CC);
-
-               if (PG(safe_mode) && (!php_checkuid(fullpath, NULL, 
CHECKUID_CHECK_FILE_AND_DIR))) {
-                       efree(fullpath);
+               if (!(fullpath = expand_filepath(filename, NULL TSRMLS_CC))) {
                        php_std_error_handling();
                        RETURN_NULL();
                }
 
-               if (php_check_open_basedir(fullpath TSRMLS_CC)) {
+               if ((PG(safe_mode) && (!php_checkuid(fullpath, NULL, 
CHECKUID_CHECK_FILE_AND_DIR))) ||
+                               php_check_open_basedir(fullpath TSRMLS_CC)) {
                        efree(fullpath);
                        php_std_error_handling();
                        RETURN_NULL();
http://cvs.php.net/viewvc.cgi/php-src/ext/sqlite/pdo_sqlite2.c?r1=1.6.2.3&r2=1.6.2.3.2.1&diff_format=u
Index: php-src/ext/sqlite/pdo_sqlite2.c
diff -u php-src/ext/sqlite/pdo_sqlite2.c:1.6.2.3 
php-src/ext/sqlite/pdo_sqlite2.c:1.6.2.3.2.1
--- php-src/ext/sqlite/pdo_sqlite2.c:1.6.2.3    Sun Jan  1 12:50:14 2006
+++ php-src/ext/sqlite/pdo_sqlite2.c    Sat Sep 16 18:10:32 2006
@@ -16,7 +16,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: pdo_sqlite2.c,v 1.6.2.3 2006/01/01 12:50:14 sniper Exp $ */
+/* $Id: pdo_sqlite2.c,v 1.6.2.3.2.1 2006/09/16 18:10:32 iliaa Exp $ */
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
@@ -518,6 +518,10 @@
        if (strncmp(filename, ":memory:", sizeof(":memory:")-1)) {
                char *fullpath = expand_filepath(filename, NULL TSRMLS_CC);
 
+               if (!fullpath) {
+                       return NULL;
+               }
+
                if (PG(safe_mode) && (!php_checkuid(fullpath, NULL, 
CHECKUID_CHECK_FILE_AND_DIR))) {
                        efree(fullpath);
                        return NULL;
http://cvs.php.net/viewvc.cgi/php-src/ext/com_dotnet/com_persist.c?r1=1.5.2.3&r2=1.5.2.3.2.1&diff_format=u
Index: php-src/ext/com_dotnet/com_persist.c
diff -u php-src/ext/com_dotnet/com_persist.c:1.5.2.3 
php-src/ext/com_dotnet/com_persist.c:1.5.2.3.2.1
--- php-src/ext/com_dotnet/com_persist.c:1.5.2.3        Wed Mar 29 14:28:41 2006
+++ php-src/ext/com_dotnet/com_persist.c        Sat Sep 16 18:10:32 2006
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: com_persist.c,v 1.5.2.3 2006/03/29 14:28:41 tony2001 Exp $ */
+/* $Id: com_persist.c,v 1.5.2.3.2.1 2006/09/16 18:10:32 iliaa Exp $ */
 
 /* Infrastructure for working with persistent COM objects.
  * Implements: IStream* wrapper for PHP streams.
@@ -390,15 +390,16 @@
 
                if (filename) {
                        fullpath = expand_filepath(filename, NULL TSRMLS_CC);
-       
-                       if (PG(safe_mode) && (!php_checkuid(fullpath, NULL, 
CHECKUID_CHECK_FILE_AND_DIR))) {
+                       if (!fullpath) {
                                RETURN_FALSE;
                        }
-
-                       if (php_check_open_basedir(fullpath TSRMLS_CC)) {
+       
+                       if ((PG(safe_mode) && (!php_checkuid(fullpath, NULL, 
CHECKUID_CHECK_FILE_AND_DIR))) || 
+                                       php_check_open_basedir(fullpath 
TSRMLS_CC)) {
+                               efree(fullpath);
                                RETURN_FALSE;
                        }
-                       
+
                        olefilename = php_com_string_to_olestring(filename, 
strlen(fullpath), helper->codepage TSRMLS_CC);
                        efree(fullpath);
                }
@@ -452,13 +453,13 @@
                        return;
                }
 
-               fullpath = expand_filepath(filename, NULL TSRMLS_CC);
-
-               if (PG(safe_mode) && (!php_checkuid(fullpath, NULL, 
CHECKUID_CHECK_FILE_AND_DIR))) {
+               if (!(fullpath = expand_filepath(filename, NULL TSRMLS_CC))) {
                        RETURN_FALSE;
                }
 
-               if (php_check_open_basedir(fullpath TSRMLS_CC)) {
+               if ((PG(safe_mode) && (!php_checkuid(fullpath, NULL, 
CHECKUID_CHECK_FILE_AND_DIR))) ||
+                               php_check_open_basedir(fullpath TSRMLS_CC)) {
+                       efree(fullpath);
                        RETURN_FALSE;
                }
 

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to