diff options
author | Derick Rethans <derick@php.net> | 2004-04-01 08:54:44 +0000 |
---|---|---|
committer | Derick Rethans <derick@php.net> | 2004-04-01 08:54:44 +0000 |
commit | 88c17817a90e1c6a559ca128550b88ec0cd2171e (patch) | |
tree | 864fa8897404b0c3f26bd1065cb1a0cc4f767d8b | |
parent | fac9416797aec0a59fbe34b8fe9187c198e9b61e (diff) | |
download | php-git-88c17817a90e1c6a559ca128550b88ec0cd2171e.tar.gz |
- Fixed bug #27822 (is_resource() returns TRUE for closed resources)
-rw-r--r-- | ext/standard/tests/general_functions/is_resource.phpt | 10 | ||||
-rw-r--r-- | ext/standard/type.c | 7 |
2 files changed, 17 insertions, 0 deletions
diff --git a/ext/standard/tests/general_functions/is_resource.phpt b/ext/standard/tests/general_functions/is_resource.phpt new file mode 100644 index 0000000000..d44461e442 --- /dev/null +++ b/ext/standard/tests/general_functions/is_resource.phpt @@ -0,0 +1,10 @@ +--TEST-- +Bug #27822: is_resource() returns TRUE for closed resources +--FILE-- +<?php + $f = fopen(__FILE__, 'r'); + fclose($f); + var_dump(is_resource($f)); +?> +--EXPECT-- +bool(false) diff --git a/ext/standard/type.c b/ext/standard/type.c index 296353decd..3005df1dce 100644 --- a/ext/standard/type.c +++ b/ext/standard/type.c @@ -218,6 +218,13 @@ static void php_is_type(INTERNAL_FUNCTION_PARAMETERS, int type) RETURN_FALSE; } } + if (type == IS_RESOURCE) { + char *type_name; + type_name = zend_rsrc_list_get_rsrc_type(Z_LVAL_PP(arg) TSRMLS_CC); + if (!type_name) { + RETURN_FALSE; + } + } RETURN_TRUE; } else { RETURN_FALSE; |