From 8b20e7b68bd81ab74423c9f7937699f79401cec4 Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Sat, 19 Jan 2019 02:34:59 +0100 Subject: [PATCH] Fixed bug #77484 Zend engine crashes when calling realpath in invalid working dir --- Zend/zend_virtual_cwd.c | 2 +- .../tests/file/realpath_bug77484.phpt | 33 +++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 ext/standard/tests/file/realpath_bug77484.phpt diff --git a/Zend/zend_virtual_cwd.c b/Zend/zend_virtual_cwd.c index d26aec9148..8a41cfc343 100644 --- a/Zend/zend_virtual_cwd.c +++ b/Zend/zend_virtual_cwd.c @@ -764,7 +764,7 @@ static size_t tsrm_realpath_r(char *path, size_t start, size_t len, int *ll, tim if (i == len || (i + 1 == len && path[i] == '.')) { /* remove double slashes and '.' */ - len = i - 1; + len = EXPECTED(i > 0) ? i - 1 : 0; is_dir = 1; continue; } else if (i + 2 == len && path[i] == '.' && path[i+1] == '.') { diff --git a/ext/standard/tests/file/realpath_bug77484.phpt b/ext/standard/tests/file/realpath_bug77484.phpt new file mode 100644 index 0000000000..37cc5c203d --- /dev/null +++ b/ext/standard/tests/file/realpath_bug77484.phpt @@ -0,0 +1,33 @@ +--TEST-- +Bug #77484 Zend engine crashes when calling realpath in invalid working dir +--SKIPIF-- + +--FILE-- + +--EXPECTF-- +string(%d) "%s" +bool(false) +bool(false) +string(1) "." +string(1) "." -- 2.40.0