ID:               31363
 Updated by:       [EMAIL PROTECTED]
 Reported By:      ian at snork dot net
-Status:           Open
+Status:           Assigned
 Bug Type:         Filesystem function related
 Operating System: Debian woody (i386)
 PHP Version:      5CVS-2005-03-09
-Assigned To:      
+Assigned To:      ilia
 New Comment:

Ilia, the problem seems to be concerned with these two patches:
http://cvs.php.net/diff.php/php-src/main/streams/plain_wrapper.c?r1=1.4&r2=1.5&ty=u
http://cvs.php.net/diff.php/php-src/ext/standard/file.c?r1=1.312&r2=1.313&ty=u


Previous Comments:
------------------------------------------------------------------------

[2005-04-05 18:03:42] ian at snork dot net

My apologies -- I posted just before your message from 
bugs.php.net arrived. :) 
 
http://www.snork.net/flock.diff

------------------------------------------------------------------------

[2005-04-05 18:01:34] [EMAIL PROTECTED]

The URL to the patch would be much better.

------------------------------------------------------------------------

[2005-04-05 17:59:11] ian at snork dot net

Aw, shucks. It's been word-wrapped. 
 
Oh well -- send mail if you need an unmolested copy of the 
patch. :)

------------------------------------------------------------------------

[2005-04-05 17:57:55] [EMAIL PROTECTED]

Please, generate diffs with `diff -upd` and put them somewhere in the
Net.
Thanks you.

------------------------------------------------------------------------

[2005-04-05 17:53:57] ian at snork dot net

The cause looks to be two separate bugs; here's a patch to 
fix both. 
 
*** php5-200504050030.orig/ext/standard/file.c  Sun Mar 27 
16:30:05 2005 
--- php5-200504050030/ext/standard/file.c       Tue Apr  5 
15:26:08 2005 
*************** 
*** 339,351 **** 
   
        /* flock_values contains all possible actions if 
(operation & 4) we won't block on the lock */ 
        act = flock_values[act - 1] | (operation & 4 ? 
LOCK_NB : 0); 
!       if (!php_stream_lock(stream, act)) { 
                if (operation && errno == EWOULDBLOCK && 
arg3 && PZVAL_IS_REF(arg3)) { 
                        Z_LVAL_P(arg3) = 1; 
                } 
!               RETURN_TRUE; 
        } 
!       RETURN_FALSE; 
  } 
   
  /* }}} */ 
--- 339,351 ---- 
   
        /* flock_values contains all possible actions if 
(operation & 4) we won't block on the lock */ 
        act = flock_values[act - 1] | (operation & 4 ? 
LOCK_NB : 0); 
!       if (php_stream_lock(stream, act)) { 
                if (operation && errno == EWOULDBLOCK && 
arg3 && PZVAL_IS_REF(arg3)) { 
                        Z_LVAL_P(arg3) = 1; 
                } 
!               RETURN_FALSE; 
        } 
!       RETURN_TRUE; 
  } 
   
  /* }}} */ 
*** php5-200504050030.orig/main/streams/plain_wrapper.c 
Thu Oct 28 06:35:19 2004 
--- php5-200504050030/main/streams/plain_wrapper.c      
Tue Apr  5 15:45:51 2005 
*************** 
*** 578,584 **** 
                                return 0; 
                        } 
   
!                       if (!flock(fd, value) || (errno == 
EWOULDBLOCK && value & LOCK_NB)) { 
                                data->lock_flag = value; 
                                return 0; 
                        } else { 
--- 578,584 ---- 
                                return 0; 
                        } 
   
!                       if (!flock(fd, value)) { 
                                data->lock_flag = value; 
                                return 0; 
                        } else {

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/31363

-- 
Edit this bug report at http://bugs.php.net/?id=31363&edit=1

Reply via email to