You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apr.apache.org by Ian Holsman <Ia...@cnet.com> on 2002/02/01 19:04:21 UTC
RE: cvs commit: apr/locks/win32 locks.c
bumped.
> -----Original Message-----
> From: wrowe@apache.org [mailto:wrowe@apache.org]
> Sent: Thursday, January 31, 2002 10:22 PM
> To: apr-cvs@apache.org
> Subject: cvs commit: apr/locks/win32 locks.c
>
>
> wrowe 02/01/31 22:21:34
>
> Modified: locks/win32 locks.c
> Log:
> Win32 mod_rewrite was broken by the implicit assumption
> that fname would
> have a value. Of course, fname may be NULL, in which
> case this patch
> from 1.46 broke any NULL locking. Correct the
> Local/Global fix for NULL
> lock names.
>
> Oh most excelent RM of .31, please consider this patch,
> without which
> mod_rewrite will not load.
>
> Revision Changes Path
> 1.49 +29 -6 apr/locks/win32/locks.c
>
> Index: locks.c
> ===================================================================
> RCS file: /home/cvs/apr/locks/win32/locks.c,v
> retrieving revision 1.48
> retrieving revision 1.49
> diff -u -r1.48 -r1.49
> --- locks.c 29 Dec 2001 23:14:22 -0000 1.48
> +++ locks.c 1 Feb 2002 06:21:34 -0000 1.49
> @@ -119,7 +119,12 @@
> }
>
> if (scope == APR_INTRAPROCESS) {
> - newlock->fname = apr_pstrdup(pool, fname);
> + if (fname) {
> + newlock->fname = apr_pstrdup(pool, fname);
> + }
> + else {
> + newlock->fname = NULL;
> + }
> InitializeCriticalSection(&newlock->section);
> } else {
> /* With Win2000 Terminal Services, the Mutex name
> can have a
> @@ -128,10 +133,17 @@
> * running on Win2000, Global\ and Local\ are
> ignored. These
> * prefixes are only valid on Win2000+
> */
> - if (apr_os_level >= APR_WIN_2000)
> - newlock->fname = apr_pstrcat(pool, "Global\\",
> fname, NULL);
> - else
> - newlock->fname = apr_pstrdup(pool, fname);
> + if (fname) {
> + if (apr_os_level >= APR_WIN_2000) {
> + newlock->fname = apr_pstrcat(pool,
> "Global\\", fname, NULL);
> + }
> + else {
> + newlock->fname = apr_pstrdup(pool, fname);
> + }
> + }
> + else {
> + newlock->fname = NULL;
> + }
>
> newlock->mutex = CreateMutex(&sec, FALSE, newlock->fname);
> if (!newlock->mutex) {
> @@ -156,7 +168,18 @@
> if ((*lock) == NULL) {
> return APR_ENOMEM;
> }
> - (*lock)->fname = apr_pstrdup(pool, fname);
> + if (fname) {
> + if (apr_os_level >= APR_WIN_2000) {
> + (*lock)->fname = apr_pstrcat(pool, "Global\\",
> fname, NULL);
> + }
> + else {
> + (*lock)->fname = apr_pstrdup(pool, fname);
> + }
> + }
> + else {
> + return APR_EINVAL;
> + }
> +
> (*lock)->mutex = OpenMutex(MUTEX_ALL_ACCESS, TRUE, fname);
>
> if ((*lock)->mutex == NULL) {
>
>
>
>