php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #49257 stream_socket_enable_crypto() problems outside of child process
Submitted: 2009-08-14 17:40 UTC Modified: 2009-09-02 19:24 UTC
From: jerrywilborn at gmail dot com Assigned:
Status: Not a bug Package: Streams related
PHP Version: 5.2.10 OS: CentOS 4.4
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: jerrywilborn at gmail dot com
New email:
PHP Version: OS:

 

 [2009-08-14 17:40 UTC] jerrywilborn at gmail dot com
Description:
------------
Open a tcp connection using stream_socket_client, spawn a child process 
with pcntl_fork, encrypt the stream in the child, fetch data from the 
stream.  In the parent wait for the child to finish and then fetch data 
out of the stream; it is not decrypted.

Reproduce code:
---------------
<?

$s = stream_socket_client("tcp://smtpout.secureserver.net:465", $errno, $errstr, 5, STREAM_CLIENT_CONNECT);

if (!pcntl_fork()) {
	if (stream_socket_enable_crypto($s, TRUE, STREAM_CRYPTO_METHOD_SSLv23_CLIENT)) {
		print "child: " . fgets($s);
	}
	exit;
}

pcntl_wait($status);
print "parent: " . fgets($s) . "\n";

?>

Expected result:
----------------
child: 220 smtpauth18.prod.mesa1.secureserver.net ESMTP
parent: 220 smtpauth18.prod.mesa1.secureserver.net ESMTP

Actual result:
--------------
child: 220 smtpauth18.prod.mesa1.secureserver.net ESMTP
parent:  ??1)?????cV^~?????
                           ??n?0?s`wh?9


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2009-09-02 19:20 UTC] jani@php.net
Exactly why would it be? You forked and called the crypto enabling, you 
didn't enable it for the parent. 
 [2009-09-02 19:24 UTC] jerrywilborn at gmail dot com
I assumed the encryption was a feature of the socket and not the 
process. Thanks for the clarification.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sun Dec 22 01:01:30 2024 UTC