Skip to content

Commit f49a01d

Browse files
committed
msLoadMapContext(): add validation of filename against MS_CONTEXTFILE_PATTERN, which defaults to .xml extension
1 parent ffb4c72 commit f49a01d

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

mapcontext.c

+7
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
#include "mapows.h"
3131

3232
#include "cpl_vsi.h"
33+
#include "cpl_conv.h"
3334

3435

3536
#if defined(USE_WMS_LYR)
@@ -1130,6 +1131,12 @@ int msLoadMapContext(mapObj *map, const char *filename, int unique_layer_names)
11301131
int nVersion=-1;
11311132
char szVersionBuf[OWS_VERSION_MAXLEN];
11321133

1134+
const char *ms_contextfile_pattern = CPLGetConfigOption("MS_CONTEXTFILE_PATTERN", MS_DEFAULT_CONTEXTFILE_PATTERN);
1135+
if(msEvalRegex(ms_contextfile_pattern, filename) != MS_TRUE) {
1136+
msSetError(MS_REGEXERR, "Filename validation failed." , "msLoadMapContext()");
1137+
return MS_FAILURE;
1138+
}
1139+
11331140
/* */
11341141
/* Load the raw XML file */
11351142
/* */

mapserver.h

+1
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@ extern "C" {
231231
#else
232232
#define MS_DEFAULT_MAPFILE_PATTERN "\\.map$"
233233
#endif
234+
#define MS_DEFAULT_CONTEXTFILE_PATTERN "\\.[Xx][Mm][Ll]$"
234235
#define MS_TEMPLATE_MAGIC_STRING "MapServer Template"
235236
#define MS_TEMPLATE_EXPR "\\.(xml|wml|html|htm|svg|kml|gml|js|tmpl)$"
236237

0 commit comments

Comments
 (0)