From 17d22a50d9f318927bac81c1a33a9700a3ed0fd4 Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Wed, 26 Mar 2008 23:06:47 +0000 Subject: [PATCH] Fixed bug #44501 (LOCK_EX mode in file_put_contents() is impropertly handled in combination with url wrappers) --- ext/standard/file.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ext/standard/file.c b/ext/standard/file.c index 0fce31af2f..db783325ee 100644 --- a/ext/standard/file.c +++ b/ext/standard/file.c @@ -596,6 +596,13 @@ PHP_FUNCTION(file_put_contents) if (flags & PHP_FILE_APPEND) { mode[0] = 'a'; } else if (flags & LOCK_EX) { + /* check to make sure we are dealing with a regular file */ + if (php_memnstr(filename, "://", sizeof("://") - 1, filename + filename_len)) { + if (strncasecmp(filename, "file://", sizeof("file://") - 1)) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Exclusive locks may only be set for regular files"); + RETURN_FALSE; + } + } mode[0] = 'c'; } mode[2] = '\0'; -- 2.50.1