php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Return to Bug #61989
Patch pecl-bug-61989.diff revision 2012-05-30 08:55 UTC by daniel dot mueller at inexio dot net

Patch pecl-bug-61989.diff for dio Bug #61989

Patch version 2012-05-30 08:55 UTC

Return to Bug #61989 | Download this patch
Patch Revisions:

Developer: daniel.mueller@inexio.net

--- dio.c.orig	2012-05-29 18:31:12.000000000 +0200
+++ dio.c	2012-05-29 18:41:04.000000000 +0200
@@ -96,9 +96,14 @@
 		return;
 	}
 
-	if (php_check_open_basedir(file_name TSRMLS_CC) || (PG(safe_mode) && !php_checkuid(file_name, "wb+", CHECKUID_CHECK_MODE_PARAM))) {
+	if (php_check_open_basedir(file_name TSRMLS_CC)) {
 		RETURN_FALSE;
 	}
+#if PHP_VERSION_ID < 50399
+	if (PG(safe_mode) && !php_checkuid(file_name, "wb+", CHECKUID_CHECK_MODE_PARAM)) {
+		RETURN_FALSE;
+	}
+#endif
 
 	if (ZEND_NUM_ARGS() == 3) {
 		fd = open(file_name, flags, mode);
--- dio_stream_wrappers.c.orig	2012-02-17 15:52:01.000000000 +0100
+++ dio_stream_wrappers.c	2012-05-29 18:37:02.000000000 +0200
@@ -143,10 +143,14 @@
 	filename = path + sizeof(DIO_RAW_STREAM_PROTOCOL) - 1;
 
 	/* Check we can actually access it. */
-	if (php_check_open_basedir(filename TSRMLS_CC) ||
-		(PG(safe_mode) && !php_checkuid(filename, mode, CHECKUID_CHECK_MODE_PARAM))) {
+	if (php_check_open_basedir(filename TSRMLS_CC)) {
 		return NULL;
 	}
+#if PHP_VERSION_ID < 50399
+	if (PG(safe_mode) && !php_checkuid(filename, mode, CHECKUID_CHECK_MODE_PARAM)) {
+		return NULL;
+	}
+#endif
 
 	data = dio_create_stream_data();
 	data->stream_type = DIO_STREAM_TYPE_RAW;
@@ -210,10 +214,14 @@
 	}
 
 	/* Check we can actually access the file. */
-	if (php_check_open_basedir(filename TSRMLS_CC) ||
-		(PG(safe_mode) && !php_checkuid(filename, mode, CHECKUID_CHECK_MODE_PARAM))) {
+	if (php_check_open_basedir(filename TSRMLS_CC)) {
+		RETURN_FALSE;
+	}
+#if PHP_VERSION_ID < 50399
+	if (PG(safe_mode) && !php_checkuid(filename, mode, CHECKUID_CHECK_MODE_PARAM)) {
 		RETURN_FALSE;
 	}
+#endif
 
 	data = dio_create_stream_data();
 	data->stream_type = DIO_STREAM_TYPE_RAW;
@@ -307,10 +315,14 @@
 	filename = path + sizeof(DIO_SERIAL_STREAM_PROTOCOL) - 1;
 
 	/* Check we can actually access it. */
-	if (php_check_open_basedir(filename TSRMLS_CC) ||
-		(PG(safe_mode) && !php_checkuid(filename, mode, CHECKUID_CHECK_MODE_PARAM))) {
+	if (php_check_open_basedir(filename TSRMLS_CC)) {
 		return NULL;
 	}
+#if PHP_VERSION_ID < 50399
+	if (PG(safe_mode) && !php_checkuid(filename, mode, CHECKUID_CHECK_MODE_PARAM)) {
+		return NULL;
+	}
+#endif
 
 	data = dio_create_stream_data();
 	data->stream_type = DIO_STREAM_TYPE_SERIAL;
@@ -374,10 +386,14 @@
 	}
 
 	/* Check we can actually access the file. */
-	if (php_check_open_basedir(filename TSRMLS_CC) ||
-		(PG(safe_mode) && !php_checkuid(filename, mode, CHECKUID_CHECK_MODE_PARAM))) {
+	if (php_check_open_basedir(filename TSRMLS_CC)) {
+		RETURN_FALSE;
+	}
+#if PHP_VERSION_ID < 50399
+	if (PG(safe_mode) && !php_checkuid(filename, mode, CHECKUID_CHECK_MODE_PARAM)) {
 		RETURN_FALSE;
 	}
+#endif
 
 	data = dio_create_stream_data();
 	data->stream_type = DIO_STREAM_TYPE_SERIAL;
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu May 02 07:01:30 2024 UTC