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

View File

@ -143,6 +143,7 @@ server_rec *modsecInit() {
server->server_scheme = "";
server->timeout = 60 * 1000000;// 60 seconds
server->wild_names = NULL;
server->is_virtual = 0;
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;
ap_directive_t *newdir;
int optional;
char *err = NULL;
//*(char **)apr_array_push(ari) = (char *)filename;
errmsg = populate_include_files(p, ptemp, ari, filename, 0);
if(errmsg != NULL)
@ -1108,21 +1108,18 @@ ProcessInclude:
break;
}
while((parms = (cmd_parms *)apr_array_pop(arr)) != NULL)
{
ap_cfg_closefile(parms->config_file);
}
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,
parms->config_file->line_number, errmsg);
return err;
if(parms != NULL)
apr_snprintf(err, 1024, "Syntax error in config file %s, line %d: %s", parms->config_file->name,
parms->config_file->line_number, errmsg);
else
apr_snprintf(err, 1024, "Syntax error in config file: %s", errmsg);
}
return NULL;
errmsg = err;
Exit:
while((parms = (cmd_parms *)apr_array_pop(arr)) != NULL)
{