Re: [PHP-CVS] cvs: php-src /ext/standard dir.c /ext/standard/tests/file bug41655_1.phpt

2007-06-25 Thread Pierre

Hi Dmitry,

On 6/25/07, Dmitry Stogov [EMAIL PROTECTED] wrote:

dmitry  Mon Jun 25 08:40:37 2007 UTC

  Modified files:
/php-src/ext/standard   dir.c
/php-src/ext/standard/tests/filebug41655_1.phpt
  Log:
  Better fix for bug #41655


http://cvs.php.net/viewvc.cgi/php-src/ext/standard/dir.c?r1=1.163r2=1.164diff_format=u
Index: php-src/ext/standard/dir.c
diff -u php-src/ext/standard/dir.c:1.163 php-src/ext/standard/dir.c:1.164
--- php-src/ext/standard/dir.c:1.163Tue Jun 12 13:42:04 2007
+++ php-src/ext/standard/dir.c  Mon Jun 25 08:40:36 2007
@@ -16,7 +16,7 @@
+--+
  */

-/* $Id: dir.c,v 1.163 2007/06/12 13:42:04 scottmac Exp $ */
+/* $Id: dir.c,v 1.164 2007/06/25 08:40:36 dmitry Exp $ */

 /* {{{ includes/startup/misc */

@@ -423,16 +423,15 @@
 #endif

if (PG(open_basedir)  *PG(open_basedir)) {
-   size_t base_len = php_dirname(pattern, strlen(pattern));
-   char pos = pattern[base_len];
-
-   pattern[base_len] = '\0';
-
+   int pattern_len = strlen(pattern);
+   char *basename = estrndup(pattern, pattern_len);
+
+   php_dirname(basename, pattern_len);


Why is it a better fix? In these versions (head and 5.2), we don't
need to duplicate the pattern. I applied in 4.4 as dirname modifies
the pattern.

Cheers,
--Pierre

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



RE: [PHP-CVS] cvs: php-src /ext/standard dir.c /ext/standard/tests/file bug41655_1.phpt

2007-06-25 Thread Dmitry Stogov
 /php-src/ext/standard/tests/file/bug41655_2.phpt was broken because
pattern was truncated by php_dirname().

Dmitry.

 -Original Message-
 From: Pierre [mailto:[EMAIL PROTECTED] 
 Sent: Monday, June 25, 2007 12:52 PM
 To: Dmitry Stogov
 Cc: php-cvs@lists.php.net
 Subject: Re: [PHP-CVS] cvs: php-src /ext/standard dir.c 
 /ext/standard/tests/file bug41655_1.phpt
 
 
 Hi Dmitry,
 
 On 6/25/07, Dmitry Stogov [EMAIL PROTECTED] wrote:
  dmitry  Mon Jun 25 08:40:37 2007 UTC
 
Modified files:
  /php-src/ext/standard   dir.c
  /php-src/ext/standard/tests/filebug41655_1.phpt
Log:
Better fix for bug #41655
 
 
  
 http://cvs.php.net/viewvc.cgi/php-src/ext/standard/dir.c?r1=1.163r2=1
  .164diff_format=u
  Index: php-src/ext/standard/dir.c
  diff -u php-src/ext/standard/dir.c:1.163 
 php-src/ext/standard/dir.c:1.164
  --- php-src/ext/standard/dir.c:1.163Tue Jun 12 13:42:04 2007
  +++ php-src/ext/standard/dir.c  Mon Jun 25 08:40:36 2007
  @@ -16,7 +16,7 @@
  
 +-
 -+
*/
 
  -/* $Id: dir.c,v 1.163 2007/06/12 13:42:04 scottmac Exp $ */
  +/* $Id: dir.c,v 1.164 2007/06/25 08:40:36 dmitry Exp $ */
 
   /* {{{ includes/startup/misc */
 
  @@ -423,16 +423,15 @@
   #endif
 
  if (PG(open_basedir)  *PG(open_basedir)) {
  -   size_t base_len = php_dirname(pattern, 
 strlen(pattern));
  -   char pos = pattern[base_len];
  -
  -   pattern[base_len] = '\0';
  -
  +   int pattern_len = strlen(pattern);
  +   char *basename = estrndup(pattern, pattern_len);
  +
  +   php_dirname(basename, pattern_len);
 
 Why is it a better fix? In these versions (head and 5.2), we 
 don't need to duplicate the pattern. I applied in 4.4 as 
 dirname modifies the pattern.
 
 Cheers,
 --Pierre
 

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