On Tue, Mar 19, 2019 at 12:12 PM William A Rowe Jr <wr...@rowe-clan.net>
wrote:

>
>>>
>>> The proper reset value wouldn't be NULL but INVALID_HANDLE_VALUE, which
>>> is defined like:
>>>
>>>
>>>
>>> #define INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1)
>>>
>>>
>>> Trying this again... we patch this;
>
> @@ -61,10 +64,11 @@
>           * use a [slower] mutex object, instead.
>           */
>          IF_WIN_OS_IS_UNICODE {
>              InitializeCriticalSection(&(*mutex)->section);
>              (*mutex)->type = thread_mutex_critical_section;
> +            (*mutex)->handle = INVALID_HANDLE_VALUE;
>          }
>  #endif
>  #if APR_HAS_ANSI_FS
>
>
Michael, sorry, I'm unable to make this change at this time.

The fix we agree on is already made by ylavic in;
http://svn.apache.org/viewvc?view=revision&revision=1667900

buried in a much larger contribution to 1.7.0. If you would like to offer
it as a patch to apr/trunk (and apr/branches/1.7.x) we need to evaluate how
INVALID_HANDLE_VALUE would behave in lieu of NULL across the functions.

I'm satisfied that the new NULL behavior is preferable to leaving a closed
handle lying around for double-closure, and that the defect in your PR is
'fixed'.

Reply via email to