Lines 108-115
Link Here
|
108 |
conf->opts = dir ? OPT_UNSET : OPT_UNSET|OPT_ALL; |
108 |
conf->opts = dir ? OPT_UNSET : OPT_UNSET|OPT_ALL; |
109 |
conf->opts_add = conf->opts_remove = OPT_NONE; |
109 |
conf->opts_add = conf->opts_remove = OPT_NONE; |
110 |
conf->override = dir ? OR_UNSET : OR_UNSET|OR_ALL; |
110 |
conf->override = dir ? OR_UNSET : OR_UNSET|OR_ALL; |
111 |
conf->override_opts = OPT_UNSET | OPT_ALL | OPT_INCNOEXEC | OPT_SYM_OWNER |
111 |
conf->override_opts = OPT_UNSET | OPT_ALL | OPT_SYM_OWNER | OPT_MULTI; |
112 |
| OPT_MULTI; |
|
|
113 |
|
112 |
|
114 |
conf->content_md5 = 2; |
113 |
conf->content_md5 = 2; |
115 |
conf->accept_path_info = 3; |
114 |
conf->accept_path_info = 3; |
Lines 242-249
Link Here
|
242 |
conf->opts_remove = (conf->opts_remove & ~new->opts_add) |
241 |
conf->opts_remove = (conf->opts_remove & ~new->opts_add) |
243 |
| new->opts_remove; |
242 |
| new->opts_remove; |
244 |
conf->opts = (conf->opts & ~conf->opts_remove) | conf->opts_add; |
243 |
conf->opts = (conf->opts & ~conf->opts_remove) | conf->opts_add; |
245 |
if ((base->opts & OPT_INCNOEXEC) && (new->opts & OPT_INCLUDES)) { |
244 |
|
246 |
conf->opts = (conf->opts & ~OPT_INCNOEXEC) | OPT_INCLUDES; |
245 |
/* If Includes was enabled with exec in the base config, but |
|
|
246 |
* was enabled without exec in the new config, then disable |
247 |
* exec in the merged set. */ |
248 |
if (((base->opts & (OPT_INCLUDES|OPT_INC_WITH_EXEC)) |
249 |
== (OPT_INCLUDES|OPT_INC_WITH_EXEC)) |
250 |
&& ((new->opts & (OPT_INCLUDES|OPT_INC_WITH_EXEC)) |
251 |
== OPT_INCLUDES)) { |
252 |
conf->opts &= ~OPT_INC_WITH_EXEC; |
247 |
} |
253 |
} |
248 |
} |
254 |
} |
249 |
else { |
255 |
else { |
Lines 1304-1313
Link Here
|
1304 |
opt = OPT_INDEXES; |
1310 |
opt = OPT_INDEXES; |
1305 |
} |
1311 |
} |
1306 |
else if (!strcasecmp(w, "Includes")) { |
1312 |
else if (!strcasecmp(w, "Includes")) { |
1307 |
opt = OPT_INCLUDES; |
1313 |
/* If Includes is permitted, both Includes and |
|
|
1314 |
* IncludesNOEXEC may be changed. */ |
1315 |
opt = (OPT_INCLUDES | OPT_INC_WITH_EXEC); |
1308 |
} |
1316 |
} |
1309 |
else if (!strcasecmp(w, "IncludesNOEXEC")) { |
1317 |
else if (!strcasecmp(w, "IncludesNOEXEC")) { |
1310 |
opt = (OPT_INCLUDES | OPT_INCNOEXEC); |
1318 |
opt = OPT_INCLUDES; |
1311 |
} |
1319 |
} |
1312 |
else if (!strcasecmp(w, "FollowSymLinks")) { |
1320 |
else if (!strcasecmp(w, "FollowSymLinks")) { |
1313 |
opt = OPT_SYM_LINKS; |
1321 |
opt = OPT_SYM_LINKS; |
Lines 1428-1437
Link Here
|
1428 |
opt = OPT_INDEXES; |
1436 |
opt = OPT_INDEXES; |
1429 |
} |
1437 |
} |
1430 |
else if (!strcasecmp(w, "Includes")) { |
1438 |
else if (!strcasecmp(w, "Includes")) { |
1431 |
opt = OPT_INCLUDES; |
1439 |
opt = (OPT_INCLUDES | OPT_INC_WITH_EXEC); |
1432 |
} |
1440 |
} |
1433 |
else if (!strcasecmp(w, "IncludesNOEXEC")) { |
1441 |
else if (!strcasecmp(w, "IncludesNOEXEC")) { |
1434 |
opt = (OPT_INCLUDES | OPT_INCNOEXEC); |
1442 |
opt = OPT_INCLUDES; |
1435 |
} |
1443 |
} |
1436 |
else if (!strcasecmp(w, "FollowSymLinks")) { |
1444 |
else if (!strcasecmp(w, "FollowSymLinks")) { |
1437 |
opt = OPT_SYM_LINKS; |
1445 |
opt = OPT_SYM_LINKS; |