[Ace-users] [ace-users] [ace-bugs] A problem with copying ACE_Handler

Douglas C. Schmidt schmidt at dre.vanderbilt.edu
Thu Nov 8 09:38:06 CST 2007


Hi Juraj,

   Thanks for using the PRF.

>    ACE VERSION: 5.6.1
>
>    HOST MACHINE and OPERATING SYSTEM:
>         Intel Pentium, WinXP, Winsock2
>
>    COMPILER NAME AND VERSION (AND PATCHLEVEL):
>    MS VS 7.1
>
>    THE $ACE_ROOT/ace/config.h FILE: config-win32.h
>
>    CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features
>    (used by MPC when you generate your own makefiles):
>
>    DOES THE PROBLEM AFFECT:
>        COMPILATION? No
>        LINKING? No
>        EXECUTION? Yes
>
>    SYNOPSIS:
>    A problem with copying ACE_Handler.
>
>    DESCRIPTION:
>    A copy of ACE_Handler object will have an invalid ACE_Handler::Proxy 
>member. I.e. a copy of the ACE_Handler will
>   receive a copy of the original object's proxy shared pointer. This 
>has two potential problems:
>       1. ACE_Handler should, as far as I can understand, always contain 
>a proxy which points to itself, not some other handler.
>       2. When either of the two is destroyed (original or the copy) it 
>will reset (shared) proxy's pointer, and we are left with an
>           ACE_Handler with an invalid proxy_ member.
>
>    E.g. (the one that lead me to this bug)  if you try to create 
>ACE_Handler factory method which returns an ACE_Handler by value.
>
>    ACE_Handler factory()
>    {
>       return ACE_Handler();
>    }
>
>    In this case, the returned ACE_Handler has proxy_ which points to 
>nothing. As a consequence, no notifications from the proactor
>will reach this handler.
>
>    SAMPLE FIX/WORKAROUND:
>    Recheck destructor / copy-constructor / assignment operator.

I don't think we anticipated this use-case when the class was written.
If you'd like to send us patches that fix this that would be super!

Thanks,

        Doug


-- 
Dr. Douglas C. Schmidt                       Professor and Associate Chair
Electrical Engineering and Computer Science  TEL: (615) 343-8197
Vanderbilt University                        WEB: www.dre.vanderbilt.edu/~schmidt
Nashville, TN 37203                          NET: d.schmidt at vanderbilt.edu



More information about the Ace-users mailing list