Merge pull request #9 from gwroblew/remotes/trunk

Fixed crash with invalid commands and marked IIS server as non-virtual, ...
This commit is contained in:
Breno Silva 2012-11-09 10:39:07 -08:00
commit dc8d464e9f
3 changed files with 14 additions and 16 deletions

View File

@ -752,8 +752,8 @@ CMyHttpModule::OnBeginRequest(
pConfig->m_dwLastCheck = ctime; pConfig->m_dwLastCheck = ctime;
if(ret == 0 || pConfig->m_LastChange.dwLowDateTime != fdata.ftLastWriteTime.dwLowDateTime || if(pConfig->m_Config == NULL || (ret != 0 && (pConfig->m_LastChange.dwLowDateTime != fdata.ftLastWriteTime.dwLowDateTime ||
pConfig->m_LastChange.dwHighDateTime != fdata.ftLastWriteTime.dwHighDateTime) pConfig->m_LastChange.dwHighDateTime != fdata.ftLastWriteTime.dwHighDateTime)))
{ {
pConfig->m_LastChange.dwLowDateTime = fdata.ftLastWriteTime.dwLowDateTime; pConfig->m_LastChange.dwLowDateTime = fdata.ftLastWriteTime.dwLowDateTime;
pConfig->m_LastChange.dwHighDateTime = fdata.ftLastWriteTime.dwHighDateTime; pConfig->m_LastChange.dwHighDateTime = fdata.ftLastWriteTime.dwHighDateTime;
@ -769,9 +769,9 @@ CMyHttpModule::OnBeginRequest(
WriteEventViewerLog(err, EVENTLOG_ERROR_TYPE); WriteEventViewerLog(err, EVENTLOG_ERROR_TYPE);
} }
} }
delete path;
} }
delete path;
} }
conn_rec *c; conn_rec *c;

View File

@ -143,6 +143,7 @@ server_rec *modsecInit() {
server->server_scheme = ""; server->server_scheme = "";
server->timeout = 60 * 1000000;// 60 seconds server->timeout = 60 * 1000000;// 60 seconds
server->wild_names = NULL; server->wild_names = NULL;
server->is_virtual = 0;
ap_server_config_defines = apr_array_make(pool, 1, sizeof(char *)); ap_server_config_defines = apr_array_make(pool, 1, sizeof(char *));

View File

@ -991,8 +991,8 @@ const char *process_command_config(server_rec *s,
apr_status_t status; apr_status_t status;
ap_directive_t *newdir; ap_directive_t *newdir;
int optional; int optional;
char *err = NULL;
//*(char **)apr_array_push(ari) = (char *)filename;
errmsg = populate_include_files(p, ptemp, ari, filename, 0); errmsg = populate_include_files(p, ptemp, ari, filename, 0);
if(errmsg != NULL) if(errmsg != NULL)
@ -1108,21 +1108,18 @@ ProcessInclude:
break; break;
} }
while((parms = (cmd_parms *)apr_array_pop(arr)) != NULL)
{
ap_cfg_closefile(parms->config_file);
}
if (errmsg) { if (errmsg) {
char *err = (char *)apr_palloc(p, 1024); err = (char *)apr_palloc(p, 1024);
apr_snprintf(err, 1024, "Syntax error in config file %s, line %d: %s", parms->config_file->name, if(parms != NULL)
parms->config_file->line_number, errmsg); apr_snprintf(err, 1024, "Syntax error in config file %s, line %d: %s", parms->config_file->name,
parms->config_file->line_number, errmsg);
return err; else
apr_snprintf(err, 1024, "Syntax error in config file: %s", errmsg);
} }
return NULL; errmsg = err;
Exit: Exit:
while((parms = (cmd_parms *)apr_array_pop(arr)) != NULL) while((parms = (cmd_parms *)apr_array_pop(arr)) != NULL)
{ {