ID: 23220 Updated by: [EMAIL PROTECTED] Reported By: storozhilov at mail dot ru Status: Assigned Bug Type: Filesystem function related Operating System: FreeBSD 4.8 PHP Version: 4-STABLE-200307070330 Assigned To: wez New Comment:
Could you try the next stable snapshot (due in a few minutes)? I comitted a fix for a different bug that might make a difference to this one. If it hasn't fixed it, could you post an https:// URL that reproduces the problem, so that I can investigate further? Previous Comments: ------------------------------------------------------------------------ [2003-09-24 11:36:55] chris dot edwards at obinet dot com Getting the exact same error. Same OS, same version of PHP. Changing the length of the string offered no changes. I still get: SSL: fatal protocol error I'm getting this for fread() and fgets(). ------------------------------------------------------------------------ [2003-08-21 20:25:22] info at splendense dot nl Using '$buff = fgets ($f, 355);' does not give any error, however 356 does for me (php 4.3.2 solaris). My script seems to work fine but maybe a response string greater than 355 chars will not work?!? ------------------------------------------------------------------------ [2003-08-21 20:18:33] scottm at spamcop dot net I've not verified this patch will work and I'll hopefully test it tomorrow. I believe it is reaching the end of the file and nr_bytes is returning 0 and this is being caught by an if statement which should be looking for -1. --- network.c Thu Aug 21 21:06:43 2003 +++ network.c.patched Thu Aug 21 21:13:09 2003 @@ -1011,13 +1011,14 @@ do { nr_bytes = SSL_read(sock->ssl_handle, buf, count); - if (nr_bytes <= 0) { + if (nr_bytes < 0) { retry = handle_ssl_error(stream, nr_bytes TSRMLS_CC); if (retry == 0 && !SSL_pending(sock->ssl_handle)) { stream->eof = 1; } } else { - /* we got the data */ + /* we got the data */ + stream->eof = 1; break; } } while (retry); ------------------------------------------------------------------------ [2003-08-05 09:43:36] uk at access dot lv php4.3.2 configured with-openssl if ($f = fopen('https://site', 'r')) { while (!feof($f)) { $buff = fgets ($f, 1024); echo $buff; } } fclose ($f); Warning: fgets(): SSL: fatal protocol error if i read just some bits then no error. ------------------------------------------------------------------------ [2003-07-07 00:48:32] severitt at ihug dot co dot nz After experiencing this same bug with php 4.3.2 on FreeBSD 4.4, I came searched here and found this bug report. After reading the comment to try the latest stable version, I compiled and installed php4-STABLE-200307070330. However the problem still remains. It appears that maybe feof() is not detecting the eof properly, because if I read in less bytes than the the size of the response, I don't get this warning. ------------------------------------------------------------------------ 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/23220 -- Edit this bug report at http://bugs.php.net/?id=23220&edit=1