]> granicus.if.org Git - php/commitdiff
Do not silently truncate
authorStefan Esser <sesser@php.net>
Wed, 1 Dec 2004 22:37:33 +0000 (22:37 +0000)
committerStefan Esser <sesser@php.net>
Wed, 1 Dec 2004 22:37:33 +0000 (22:37 +0000)
main/safe_mode.c

index d0d351388d3bdad655fc8acaa2d65703321aff99..b3119b0de5f3f1f623340b1f31ac7cc20e64caec 100644 (file)
@@ -55,13 +55,15 @@ PHPAPI int php_checkuid_ex(const char *filename, char *fopen_mode, int mode, int
        php_stream_wrapper *wrapper = NULL;
        TSRMLS_FETCH();
 
-       strlcpy(filenamecopy, filename, MAXPATHLEN);
-       filename=(char *)&filenamecopy;
-
        if (!filename) {
                return 0; /* path must be provided */
        }
 
+       if (strlcpy(filenamecopy, filename, MAXPATHLEN)>=MAXPATHLEN) {
+               return 0;
+       }
+       filename=(char *)&filenamecopy;
+
        if (fopen_mode) {
                if (fopen_mode[0] == 'r') {
                        mode = CHECKUID_DISALLOW_FILE_NOT_EXISTS;