>Number: 1168
>Category: os-windows
>Synopsis: APACHE_TLS cannot be used in modules on Windows95
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: apache (Apache HTTP Project)
>State: open
>Class: sw-bug
>Submitter-Id: apache
>Arrival-Date: Thu Sep 25 11:40:02 1997
>Originator: [EMAIL PROTECTED]
>Organization:
apache
>Release: 1.3a1
>Environment:
PC running Windows 95
compiled with MSVC++5.0
>Description:
On Windows 95, a dll cannot be load by LoadLibraryEx
if the symbol APACHE_TLS is used in the module.
LoadLibraryEx return code is 1114.
MessageId: ERROR_DLL_INIT_FAILED
MessageText:
A dynamic link library (DLL) initialization routine failed.
>How-To-Repeat:
#include "httpd.h"
#include "http_config.h"
#include "multithread.h"
/*
** Directive: LoadModule test_module modules/ApacheTest.dll
**
** This directive doesn't work on Windows 95 if you use
** APACHE_TLS in the module.
**
** Configuration:
** - Compiled on NT4 with msvc+5.0
**
*/
/*static request_rec *out; LoadModule works fine */
static APACHE_TLS request_rec *out; /* LoadModule doesn't work */
static int test_handler (request_rec *r)
{
out = r; /* Just for a test */
return OK;
}
static handler_rec test_handlers[] = {
{ "test", test_handler },
{ NULL }
};
module MODULE_VAR_EXPORT test_module =
{
STANDARD_MODULE_STUFF,
NULL, /* initializer */
NULL, /* dir config creater */
NULL, /* dir merger --- default is to override */
NULL, /* server config */
NULL, /* merge server config */
NULL, /* command table */
test_handlers, /* handlers */
NULL, /* filename translation */
NULL, /* check_user_id */
NULL, /* check auth */
NULL, /* check access */
NULL, /* type_checker */
NULL, /* fixups */
NULL, /* logger */
NULL, /* header parser */
NULL /* child_init */
};
>Fix:
n
>Audit-Trail:
>Unformatted: