Commit:    900778731c49611e1318e4d1839768eb46f26813
Author:    Rasmus Lerdorf <ras...@php.net>         Sun, 25 Mar 2012 05:32:21 
+0530
Parents:   24a57ae9a5e3e3bc5472a901e0eaff4d70eb281a
Branches:  PHP-5.4

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=900778731c49611e1318e4d1839768eb46f26813

Log:
open_basedir check for linkinfo

Changed paths:
  M  ext/standard/link.c


Diff:
900778731c49611e1318e4d1839768eb46f26813
diff --git a/ext/standard/link.c b/ext/standard/link.c
index 9fa2524..cb42408 100644
--- a/ext/standard/link.c
+++ b/ext/standard/link.c
@@ -94,7 +94,8 @@ PHP_FUNCTION(readlink)
 PHP_FUNCTION(linkinfo)
 {
        char *link;
-       int link_len;
+       char *dirname;
+       int link_len, dir_len;
        struct stat sb;
        int ret;
 
@@ -102,12 +103,22 @@ PHP_FUNCTION(linkinfo)
                return;
        }
 
+       dirname = estrndup(link, link_len);
+       dir_len = php_dirname(dirname, link_len);
+
+       if (php_check_open_basedir(dirname TSRMLS_CC)) {
+               efree(dirname);
+               RETURN_FALSE;
+       }
+
        ret = VCWD_LSTAT(link, &sb);
        if (ret == -1) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", 
strerror(errno));
+               efree(dirname);
                RETURN_LONG(-1L);
        }
 
+       efree(dirname);
        RETURN_LONG((long) sb.st_dev);
 }
 /* }}} */


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to