[jira] [Commented] (AXIS2C-1655) Client library closes stderr on axutil_env_free()

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[jira] [Commented] (AXIS2C-1655) Client library closes stderr on axutil_env_free()

JIRA jira@apache.org

    [ https://issues.apache.org/jira/browse/AXIS2C-1655?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13932356#comment-13932356 ]

Jake Scott commented on AXIS2C-1655:

That patch looks good to me, thanks.  I'll download and report any issues.

I do notice a potential bug in the same file though (unrelated) :

    if (!log_impl->mutex)
        fprintf(stderr, "cannot create log mutex \n");
        return NULL;

... seems to be a memory leak if the mutex create fails (no free of previously created log_impl), unless I'm missing something.

> Client library closes stderr on axutil_env_free()
> -------------------------------------------------
>                 Key: AXIS2C-1655
>                 URL: https://issues.apache.org/jira/browse/AXIS2C-1655
>             Project: Axis2-C
>          Issue Type: Bug
>          Components: core/clientapi
>    Affects Versions: 1.6.0
>            Reporter: Jake Scott
>   Original Estimate: 1h
>  Remaining Estimate: 1h
> The client API defaults to using stderr when the specified log file cannot be opened.  The axutil_log_impl_free() function blindly closes the log stream without checking whether it had opened the stream or not.  This results in stderr being closed in certain conditions.
> This is effecting a custom Apache module;  when Apache runs daemonized, it switches its working directory to the root.  This causes the Axis2 log file open to fail and use stderr instead.  When the module is done with the Axis2 environment, it frees it - and at that time, Apache's stderr is closed.  From then on, accept() returns fd2 and so the network ends up getting spammed with Apache log messages.

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]