Skip to content

Commit dc8d464

Browse files
committed
Merge pull request #9 from gwroblew/remotes/trunk
Fixed crash with invalid commands and marked IIS server as non-virtual, ...
2 parents b31f83b + 74b8daa commit dc8d464

File tree

3 files changed

+14
-16
lines changed

3 files changed

+14
-16
lines changed

iis/mymodule.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -752,8 +752,8 @@ CMyHttpModule::OnBeginRequest(
752752

753753
pConfig->m_dwLastCheck = ctime;
754754

755-
if(ret == 0 || pConfig->m_LastChange.dwLowDateTime != fdata.ftLastWriteTime.dwLowDateTime ||
756-
pConfig->m_LastChange.dwHighDateTime != fdata.ftLastWriteTime.dwHighDateTime)
755+
if(pConfig->m_Config == NULL || (ret != 0 && (pConfig->m_LastChange.dwLowDateTime != fdata.ftLastWriteTime.dwLowDateTime ||
756+
pConfig->m_LastChange.dwHighDateTime != fdata.ftLastWriteTime.dwHighDateTime)))
757757
{
758758
pConfig->m_LastChange.dwLowDateTime = fdata.ftLastWriteTime.dwLowDateTime;
759759
pConfig->m_LastChange.dwHighDateTime = fdata.ftLastWriteTime.dwHighDateTime;
@@ -769,9 +769,9 @@ CMyHttpModule::OnBeginRequest(
769769
WriteEventViewerLog(err, EVENTLOG_ERROR_TYPE);
770770
}
771771
}
772-
773-
delete path;
774772
}
773+
774+
delete path;
775775
}
776776

777777
conn_rec *c;

standalone/api.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ server_rec *modsecInit() {
143143
server->server_scheme = "";
144144
server->timeout = 60 * 1000000;// 60 seconds
145145
server->wild_names = NULL;
146+
server->is_virtual = 0;
146147

147148
ap_server_config_defines = apr_array_make(pool, 1, sizeof(char *));
148149

standalone/config.c

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -991,8 +991,8 @@ const char *process_command_config(server_rec *s,
991991
apr_status_t status;
992992
ap_directive_t *newdir;
993993
int optional;
994+
char *err = NULL;
994995

995-
//*(char **)apr_array_push(ari) = (char *)filename;
996996
errmsg = populate_include_files(p, ptemp, ari, filename, 0);
997997

998998
if(errmsg != NULL)
@@ -1108,21 +1108,18 @@ const char *process_command_config(server_rec *s,
11081108
break;
11091109
}
11101110

1111-
while((parms = (cmd_parms *)apr_array_pop(arr)) != NULL)
1112-
{
1113-
ap_cfg_closefile(parms->config_file);
1114-
}
1115-
11161111
if (errmsg) {
1117-
char *err = (char *)apr_palloc(p, 1024);
1112+
err = (char *)apr_palloc(p, 1024);
11181113

1119-
apr_snprintf(err, 1024, "Syntax error in config file %s, line %d: %s", parms->config_file->name,
1120-
parms->config_file->line_number, errmsg);
1121-
1122-
return err;
1114+
if(parms != NULL)
1115+
apr_snprintf(err, 1024, "Syntax error in config file %s, line %d: %s", parms->config_file->name,
1116+
parms->config_file->line_number, errmsg);
1117+
else
1118+
apr_snprintf(err, 1024, "Syntax error in config file: %s", errmsg);
11231119
}
11241120

1125-
return NULL;
1121+
errmsg = err;
1122+
11261123
Exit:
11271124
while((parms = (cmd_parms *)apr_array_pop(arr)) != NULL)
11281125
{

0 commit comments

Comments
 (0)