You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

69 lines
1.6 KiB

From 942b77d84417298fb9e99c216029f22fbd1e2d98 Mon Sep 17 00:00:00 2001
From: Michael Heimpold <mhei@heimpold.de>
Date: Thu, 14 Jul 2016 01:47:05 +0200
Subject: [PATCH 13/16] Fix tests for legacy interface
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
---
dio.c | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/dio.c b/dio.c
index 7bad575..1a130a2 100644
--- a/dio.c
+++ b/dio.c
@@ -73,9 +73,9 @@ static int new_php_fd(php_fd_t **f, int fd)
return 1;
}
-static void _dio_close_fd(zend_resource *res)
+static void _dio_close_fd(zend_resource *rsrc)
{
- php_fd_t *f = (php_fd_t *)zend_fetch_resource(res, NULL, le_fd);
+ php_fd_t *f = (php_fd_t *)rsrc->ptr;
if (f) {
close(f->fd);
free(f);
@@ -87,8 +87,8 @@ static void _dio_close_fd(zend_resource *res)
PHP_FUNCTION(dio_open)
{
php_fd_t *f;
- char *file_name;
- int file_name_length;
+ char *file_name = NULL;
+ size_t file_name_length = 0;
long flags;
long mode = 0;
int fd;
@@ -97,6 +97,10 @@ PHP_FUNCTION(dio_open)
return;
}
+ if (!file_name || file_name[0] == '\0') {
+ RETURN_FALSE;
+ }
+
if (php_check_open_basedir(file_name) || DIO_SAFE_MODE_CHECK(file_name, "wb+")) {
RETURN_FALSE;
}
@@ -176,7 +180,7 @@ PHP_FUNCTION(dio_dup)
RETURN_FALSE;
}
- RETVAL_RES(zend_register_resource(f, le_fd));
+ RETVAL_RES(zend_register_resource(df, le_fd));
}
/* }}} */
#endif
@@ -660,7 +664,7 @@ PHP_FUNCTION(dio_close)
RETURN_FALSE;
}
- zend_list_delete(Z_LVAL_P(r_fd));
+ zend_list_delete(Z_RES_P(r_fd));
}
/* }}} */
--
2.5.0