I had this problem with a software I maintain.

To fix it, I marked all the file descriptors "do-not-inherit", and
then when the child was completed I caught SIGCHLD, compared the PID
that had just died to the expected value, and then expressed the
completion across all the SSL and non-SSL filedescriptors.

The symptom was that after fork() to save a copy of the current
database (this was for a MUD server), the child would write to the
sockets.  The problem with this was that all the sockets were
continuing in the parent process, so it appeared to be a replay
attack, and the SSL protocol killed all of them.

The simple fix is to ensure that only one process writes to the file
descriptors, and that any communication that must be done be done via
signals, shmem, or pipes.

-Kyle H

On 5/18/06, Marek Marcola <[EMAIL PROTECTED]> wrote:
Hello,

> in this server i fork to use a independent exec. directly after the
> exec in the child i call exit(0),
exec() call returns only on error, if not, exec() terminates current
process and load from executable into current process space
new program. So if exec() is successful, there is no such thing
like "exit(0)".

> but then the SSL connection which is an exact copy of the parent gets
> also deinitialized.
Maybe there is some logic error ?
To read from "ssl" file descriptors you need more than only
system file descriptor.

Best regards,
--
Marek Marcola <[EMAIL PROTECTED]>

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to