You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by "Alex Mantaut (JIRA)" <ji...@apache.org> on 2012/11/10 19:43:12 UTC

[jira] [Created] (AXIS2C-1611) Seg fault if error on building conf

Alex Mantaut created AXIS2C-1611:
------------------------------------

             Summary: Seg fault if error on building conf
                 Key: AXIS2C-1611
                 URL: https://issues.apache.org/jira/browse/AXIS2C-1611
             Project: Axis2-C
          Issue Type: Bug
          Components: core/engine
    Affects Versions: 1.6.0
         Environment: Linux
            Reporter: Alex Mantaut
             Fix For: 1.7.0


There is a segfault when an error ocurrs in creating conf.
 
To reproduce the bug:
- Install axis2c trunk, and compile samples
- go to AXIS2C_HOME/lib and remove or move one of the libraries (cd $AXIS2C_HOME/lib &&sudo mv libaxis2_http_receiver.so.0.7.0 libaxis2_http_receiver.so.0.7.0.1)
- execute one of the samples (i.e. echo) it will segfault.

Altough it is an error not beeing able to find an so, it should close gracefully, I think that this segfault may arise under other circumstances which cause conf building to fail...

Examining the issue with valgrind it seems that there is a double freeing of dep_engine.
dep_engine has a reference to conf and conf has a reference to dep_engine, and when it fails on creating conf, it deletes the conf (dep_engine.c:968) and when it exits the function tries to delete dep_engine again, which causes the segfault.

The proposed solution is to set the dep_engine ptr from conf to NULL before deleting the conf.
The proposed patch avoids the segfault, and doesn't leak memory in normal or error cases, please let me know if it is OK.
Also I attach the valgrind analysis for the segfault (version prior applying the patch)


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: c-dev-help@axis.apache.org


[jira] [Updated] (AXIS2C-1611) Seg fault if error on building conf

Posted by "Alex Mantaut (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2C-1611?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Mantaut updated AXIS2C-1611:
---------------------------------

    Description: 
There is a segfault when an error ocurrs in creating conf.
 
To reproduce the bug:
- Install axis2c trunk, and compile samples
- go to AXIS2C_HOME/lib and remove or move one of the libraries (cd $AXIS2C_HOME/lib &&sudo mv libaxis2_http_receiver.so.0.7.0 libaxis2_http_receiver.so.0.7.0.1)
- execute one of the samples (i.e. echo) it will segfault.

Altough it is an error not beeing able to find an so, it should close gracefully, I think that this segfault may arise under other circumstances which cause conf building to fail...

Examining the issue with valgrind it seems that there is a double freeing of dep_engine.
dep_engine has a reference to conf and conf has a reference to dep_engine, and when it fails on creating conf, it deletes the conf (dep_engine.c:968) and when it exits the function tries to delete dep_engine again, which causes the segfault.

The proposed solution is to set the dep_engine ptr from conf to NULL before deleting the conf.
The proposed patch avoids the segfault, and doesn't leak memory in normal or error cases, please let me know if it is OK.


  was:
There is a segfault when an error ocurrs in creating conf.
 
To reproduce the bug:
- Install axis2c trunk, and compile samples
- go to AXIS2C_HOME/lib and remove or move one of the libraries (cd $AXIS2C_HOME/lib &&sudo mv libaxis2_http_receiver.so.0.7.0 libaxis2_http_receiver.so.0.7.0.1)
- execute one of the samples (i.e. echo) it will segfault.

Altough it is an error not beeing able to find an so, it should close gracefully, I think that this segfault may arise under other circumstances which cause conf building to fail...

Examining the issue with valgrind it seems that there is a double freeing of dep_engine.
dep_engine has a reference to conf and conf has a reference to dep_engine, and when it fails on creating conf, it deletes the conf (dep_engine.c:968) and when it exits the function tries to delete dep_engine again, which causes the segfault.

The proposed solution is to set the dep_engine ptr from conf to NULL before deleting the conf.
The proposed patch avoids the segfault, and doesn't leak memory in normal or error cases, please let me know if it is OK.
Also I attach the valgrind analysis for the segfault (version prior applying the patch)


    
> Seg fault if error on building conf
> -----------------------------------
>
>                 Key: AXIS2C-1611
>                 URL: https://issues.apache.org/jira/browse/AXIS2C-1611
>             Project: Axis2-C
>          Issue Type: Bug
>          Components: core/engine
>    Affects Versions: 1.6.0
>         Environment: Linux
>            Reporter: Alex Mantaut
>              Labels: conf, core, dep_engine, patch
>             Fix For: 1.7.0
>
>         Attachments: axis2c_dep_engine_double_free.patch
>
>   Original Estimate: 0.5h
>  Remaining Estimate: 0.5h
>
> There is a segfault when an error ocurrs in creating conf.
>  
> To reproduce the bug:
> - Install axis2c trunk, and compile samples
> - go to AXIS2C_HOME/lib and remove or move one of the libraries (cd $AXIS2C_HOME/lib &&sudo mv libaxis2_http_receiver.so.0.7.0 libaxis2_http_receiver.so.0.7.0.1)
> - execute one of the samples (i.e. echo) it will segfault.
> Altough it is an error not beeing able to find an so, it should close gracefully, I think that this segfault may arise under other circumstances which cause conf building to fail...
> Examining the issue with valgrind it seems that there is a double freeing of dep_engine.
> dep_engine has a reference to conf and conf has a reference to dep_engine, and when it fails on creating conf, it deletes the conf (dep_engine.c:968) and when it exits the function tries to delete dep_engine again, which causes the segfault.
> The proposed solution is to set the dep_engine ptr from conf to NULL before deleting the conf.
> The proposed patch avoids the segfault, and doesn't leak memory in normal or error cases, please let me know if it is OK.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: c-dev-help@axis.apache.org


[jira] [Updated] (AXIS2C-1611) Seg fault if error on building conf

Posted by "Alex Mantaut (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2C-1611?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Mantaut updated AXIS2C-1611:
---------------------------------

    Attachment: axis2c_dep_engine_double_free.patch

Patch to solve the problem
                
> Seg fault if error on building conf
> -----------------------------------
>
>                 Key: AXIS2C-1611
>                 URL: https://issues.apache.org/jira/browse/AXIS2C-1611
>             Project: Axis2-C
>          Issue Type: Bug
>          Components: core/engine
>    Affects Versions: 1.6.0
>         Environment: Linux
>            Reporter: Alex Mantaut
>              Labels: conf, core, dep_engine, patch
>             Fix For: 1.7.0
>
>         Attachments: axis2c_dep_engine_double_free.patch
>
>   Original Estimate: 0.5h
>  Remaining Estimate: 0.5h
>
> There is a segfault when an error ocurrs in creating conf.
>  
> To reproduce the bug:
> - Install axis2c trunk, and compile samples
> - go to AXIS2C_HOME/lib and remove or move one of the libraries (cd $AXIS2C_HOME/lib &&sudo mv libaxis2_http_receiver.so.0.7.0 libaxis2_http_receiver.so.0.7.0.1)
> - execute one of the samples (i.e. echo) it will segfault.
> Altough it is an error not beeing able to find an so, it should close gracefully, I think that this segfault may arise under other circumstances which cause conf building to fail...
> Examining the issue with valgrind it seems that there is a double freeing of dep_engine.
> dep_engine has a reference to conf and conf has a reference to dep_engine, and when it fails on creating conf, it deletes the conf (dep_engine.c:968) and when it exits the function tries to delete dep_engine again, which causes the segfault.
> The proposed solution is to set the dep_engine ptr from conf to NULL before deleting the conf.
> The proposed patch avoids the segfault, and doesn't leak memory in normal or error cases, please let me know if it is OK.
> Also I attach the valgrind analysis for the segfault (version prior applying the patch)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: c-dev-help@axis.apache.org