You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apr.apache.org by Yann Lavictoire <yl...@netsecureone.com> on 2005/04/14 14:54:22 UTC
[PATCH] apr-1.1.1/locks/win32/thread_cond.c and apr-1.1.1/dso/win32
Hi,
In "apr-1.1.1/locks/win32/thread_cond.c:apr_thread_cond_create()": the "pool_cleanup_register()" call is missing (ie. 2
HANDLEs leakage if the pool is "externally" destroyed).
In "apr-1.1.1/dso/win32/dso.c:apr_dso_sym()" (_WIN32_WCE only): an inversion in the args of apr_conv_utf8_to_ucs2() can
lead to unspecified behaviour (following "GetProcAddressW()" is called with an uninitialized (stack) filename).
Bye,
Yann.
<BOP "apr-1.1.1/locks/win32/thread_cond.c">
--- thread_cond-old.c 2005-04-14 12:38:02.000000000 +0000
+++ thread_cond.c 2005-04-14 12:53:38.000000000 +0000
@@ -38,6 +38,8 @@
(*cond)->mutex = CreateMutex(NULL, FALSE, NULL);
(*cond)->signal_all = 0;
(*cond)->num_waiting = 0;
+ apr_pool_cleanup_register((*cond)->pool, (*cond), thread_cond_cleanup,
+ apr_pool_cleanup_null);
return APR_SUCCESS;
}
<EOP>
<BOP "apr-1.1.1/dso/win32/dso.c">
--- dso-old.c 2004-11-24 20:51:52.000000000 +0000
+++ dso.c 2005-04-14 12:33:33.000000000 +0000
@@ -140,7 +140,7 @@
apr_wchar_t wsymname[256];
apr_status_t rv;
- rv = apr_conv_utf8_to_ucs2(wsymname, &wsymlen, symname, &symlen);
+ rv = apr_conv_utf8_to_ucs2(symname, &symlen, wsymname, &wsymlen);
if (rv != APR_SUCCESS) {
return rv;
}
<EOP>