summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/string.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/ext/standard/string.c b/ext/standard/string.c
index 65a261eb7c..dd761f1da0 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -552,6 +552,8 @@ PHPAPI void php_dirname(char *str, int len) {
#endif
)
*c='\0';
+ else
+ *str='\0';
}
/* {{{ proto string dirname(string path)
@@ -567,7 +569,11 @@ PHP_FUNCTION(dirname)
convert_to_string_ex(str);
ret = estrdup((*str)->value.str.val);
php_dirname(ret,(*str)->value.str.len);
- RETVAL_STRING(ret,1);
+ if(*ret) {
+ RETVAL_STRING(ret,1);
+ } else {
+ RETVAL_FALSE;
+ }
efree(ret);
}
/* }}} */