Return-Path: Delivered-To: apache-bugdb-archive@hyperreal.org Received: (qmail 17467 invoked by uid 6000); 22 Jun 1999 00:30:03 -0000 Received: (qmail 17453 invoked by uid 2001); 22 Jun 1999 00:30:01 -0000 Received: (qmail 14259 invoked by uid 2012); 22 Jun 1999 00:22:46 -0000 Message-Id: <19990622002246.14258.qmail@hyperreal.org> Date: 22 Jun 1999 00:22:46 -0000 From: Ralph Hightower Reply-To: lynmax@logicsouth.com To: apbugs@hyperreal.org X-Send-Pr-Version: 3.2 Subject: mod_info/4623: Win NT reports Access Violation in mod_info.c Sender: apache-bugdb-owner@apache.org Precedence: bulk >Number: 4623 >Category: mod_info >Synopsis: Win NT reports Access Violation in mod_info.c >Confidential: no >Severity: non-critical >Priority: medium >Responsible: apache >State: open >Class: change-request >Submitter-Id: apache >Arrival-Date: Mon Jun 21 17:30:01 PDT 1999 >Last-Modified: >Originator: lynmax@logicsouth.com >Organization: apache >Release: 1.3.6 >Environment: Windows NT Workstation 4.0 SP4; Microsoft Visual Studio 97 >Description: Access Violation occurs in display_info at the start of the for loop: if (!r->args) { ap_rputs("Server Settings, ", r); for (modp = top_module; modp; modp = modp->next) { ap_rprintf(r, "%s", modp->name, modp->name); if (modp->next) { ap_rputs(", ", r); } } ap_rputs("
", r); } >How-To-Repeat: On Windows Apache servers: http://www.yourdomain.com/server-info >Fix: --- http_conf_globals.h.orig Fri Jan 01 13:04:40 1999 +++ http_conf_globals.h Thu Jun 10 22:05:33 1999 @@ -53,6 +53,10 @@ * For more information on the Apache Group and the Apache HTTP server * project, please see . * + * Ralph Hightower , June 1999 + * + * 06.09.99 Changes for Windows version + * */ #ifndef APACHE_HTTP_CONF_GLOBALS_H @@ -66,33 +70,33 @@ * Process config --- what the process ITSELF is doing */ -extern int ap_standalone; -extern uid_t ap_user_id; -extern char *ap_user_name; -extern gid_t ap_group_id; +extern API_VAR_EXPORT int ap_standalone; +extern API_VAR_EXPORT uid_t ap_user_id; +extern API_VAR_EXPORT char *ap_user_name; +extern API_VAR_EXPORT gid_t ap_group_id; #ifdef MULTIPLE_GROUPS -extern gid_t group_id_list[NGROUPS_MAX]; +extern API_VAR_EXPORT gid_t group_id_list[NGROUPS_MAX]; #endif -extern int ap_max_requests_per_child; -extern int ap_threads_per_child; -extern int ap_excess_requests_per_child; -extern struct in_addr ap_bind_address; -extern listen_rec *ap_listeners; -extern int ap_daemons_to_start; -extern int ap_daemons_min_free; -extern int ap_daemons_max_free; -extern int ap_daemons_limit; +extern API_VAR_EXPORT int ap_max_requests_per_child; +extern API_VAR_EXPORT int ap_threads_per_child; +extern API_VAR_EXPORT int ap_excess_requests_per_child; +extern API_VAR_EXPORT struct in_addr ap_bind_address; +extern API_VAR_EXPORT listen_rec *ap_listeners; +extern API_VAR_EXPORT int ap_daemons_to_start; +extern API_VAR_EXPORT int ap_daemons_min_free; +extern API_VAR_EXPORT int ap_daemons_max_free; +extern API_VAR_EXPORT int ap_daemons_limit; extern MODULE_VAR_EXPORT int ap_suexec_enabled; -extern int ap_listenbacklog; -extern int ap_dump_settings; +extern API_VAR_EXPORT int ap_listenbacklog; +extern API_VAR_EXPORT int ap_dump_settings; extern API_VAR_EXPORT int ap_extended_status; -extern char *ap_pid_fname; -extern char *ap_scoreboard_fname; -extern char *ap_lock_fname; +extern API_VAR_EXPORT char *ap_pid_fname; +extern API_VAR_EXPORT char *ap_scoreboard_fname; +extern API_VAR_EXPORT char *ap_lock_fname; extern MODULE_VAR_EXPORT char *ap_server_argv0; -extern enum server_token_type ap_server_tokens; +extern API_VAR_EXPORT enum server_token_type ap_server_tokens; /* Trying to allocate these in the config pool gets us into some *nasty* * chicken-and-egg problems in http_main.c --- where do you stick them @@ -101,17 +105,17 @@ */ extern API_VAR_EXPORT char ap_server_root[MAX_STRING_LEN]; -extern char ap_server_confname[MAX_STRING_LEN]; +extern API_VAR_EXPORT char ap_server_confname[MAX_STRING_LEN]; /* for -C, -c and -D switches */ -extern array_header *ap_server_pre_read_config; -extern array_header *ap_server_post_read_config; -extern array_header *ap_server_config_defines; +extern API_VAR_EXPORT array_header *ap_server_pre_read_config; +extern API_VAR_EXPORT array_header *ap_server_post_read_config; +extern API_VAR_EXPORT array_header *ap_server_config_defines; /* We want this to have the least chance of being corrupted if there * is some memory corruption, so we allocate it statically. */ -extern char ap_coredump_dir[MAX_STRING_LEN]; +extern API_VAR_EXPORT char ap_coredump_dir[MAX_STRING_LEN]; #ifdef __cplusplus } --- mod_info.c.orig Fri Jan 01 13:05:10 1999 +++ mod_info.c Thu Jun 10 22:06:08 1999 @@ -75,6 +75,10 @@ * Lou Langholtz , July 1997 * * 07.11.97 Addition of the AddModuleInfo directive + * + * Ralph Hightower , June 1999 + * + * 06.09.99 Changes for Windows version * */ @@ -103,7 +107,7 @@ } info_cfg_lines; module MODULE_VAR_EXPORT info_module; -extern module *top_module; +extern API_VAR_EXPORT module *top_module; static void *create_info_config(pool *p, server_rec *s) { >Audit-Trail: >Unformatted: [In order for any reply to be added to the PR database, you need] [to include in the Cc line and make sure the] [subject line starts with the report component and number, with ] [or without any 'Re:' prefixes (such as "general/1098:" or ] ["Re: general/1098:"). If the subject doesn't match this ] [pattern, your message will be misfiled and ignored. The ] ["apbugs" address is not added to the Cc line of messages from ] [the database automatically because of the potential for mail ] [loops. If you do not include this Cc, your reply may be ig- ] [nored unless you are responding to an explicit request from a ] [developer. Reply only with text; DO NOT SEND ATTACHMENTS! ]