lbarnaud                Sat May 16 20:24:02 2009 UTC

  Added files:                 (Branch: PHP_5_2)
    /php-src/ext/standard/tests/streams 
                                        stream_copy_to_stream_socket.phpt 

  Modified files:              
    /php-src/main/streams       streams.c 
    /php-src    NEWS 
  Log:
  MFH: Fixed bug #48307 (stream_copy_to_stream() copies 0 bytes when $source 
  is a socket)
  
  
http://cvs.php.net/viewvc.cgi/php-src/main/streams/streams.c?r1=1.82.2.6.2.36&r2=1.82.2.6.2.37&diff_format=u
Index: php-src/main/streams/streams.c
diff -u php-src/main/streams/streams.c:1.82.2.6.2.36 
php-src/main/streams/streams.c:1.82.2.6.2.37
--- php-src/main/streams/streams.c:1.82.2.6.2.36        Sun Apr 19 17:10:52 2009
+++ php-src/main/streams/streams.c      Sat May 16 20:24:01 2009
@@ -19,7 +19,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: streams.c,v 1.82.2.6.2.36 2009/04/19 17:10:52 lbarnaud Exp $ */
+/* $Id: streams.c,v 1.82.2.6.2.37 2009/05/16 20:24:01 lbarnaud Exp $ */
 
 #define _GNU_SOURCE
 #include "php.h"
@@ -1313,11 +1313,8 @@
 
        if (php_stream_stat(src, &ssbuf) == 0) {
                if (ssbuf.sb.st_size == 0
-#ifdef S_ISFIFO
-                && !S_ISFIFO(ssbuf.sb.st_mode)
-#endif
-#ifdef S_ISCHR
-                && !S_ISCHR(ssbuf.sb.st_mode)
+#ifdef S_ISREG
+                       && S_ISREG(ssbuf.sb.st_mode)
 #endif
                ) {
                        *len = 0;
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.1511&r2=1.2027.2.547.2.1512&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.1511 php-src/NEWS:1.2027.2.547.2.1512
--- php-src/NEWS:1.2027.2.547.2.1511    Fri May 15 17:18:18 2009
+++ php-src/NEWS        Sat May 16 20:24:01 2009
@@ -16,6 +16,8 @@
 - Fixed segfault on invalid session.save_path. (Hannes)
 - Fixed leaks in imap when a mail_criteria is used. (Pierre)
 
+- Fixed bug #48307 (stream_copy_to_stream() copies 0 bytes when $source is a 
+  socket). (Arnaud)
 - Fixed bug #48256 (Crash due to double-linking of history.o).
   (tstarling at wikimedia dot org)
 - Fixed bug #48248 (SIGSEGV when access to private property via &__get). 

http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/streams/stream_copy_to_stream_socket.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/streams/stream_copy_to_stream_socket.phpt
+++ php-src/ext/standard/tests/streams/stream_copy_to_stream_socket.phpt
--TEST--
stream_copy_to_stream() with socket as $source
--SKIPIF--
<?php
$sockets = @stream_socket_pair(STREAM_PF_UNIX, STREAM_SOCK_STREAM, 0);
if (!$sockets) die("skip stream_socket_pair");
?>
--FILE--
<?php

$sockets = stream_socket_pair(STREAM_PF_UNIX, STREAM_SOCK_STREAM, 0);
$tmp = tmpfile();

fwrite($sockets[0], b"a");
stream_socket_shutdown($sockets[0], STREAM_SHUT_WR);
stream_copy_to_stream($sockets[1], $tmp);

fseek($tmp, 0, SEEK_SET);
var_dump(stream_get_contents($tmp));

stream_copy_to_stream($sockets[1], $tmp);

fseek($tmp, 0, SEEK_SET);
var_dump(stream_get_contents($tmp));


?>
--EXPECT--
string(1) "a"
string(1) "a"



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

Reply via email to