<div dir="ltr">I should note that 7.6.3 (also 7.4.5, 7.2.3 and 7.0.8) should make defining a value for MS_MAP_PATTERN much simpler. We updated things to use two filters instead of one. The first, MS_MAP_BAD_PATTERN, checks for problematic character sequences in the map value, for example /./, /../ or // and fails if there is a match. This means you don't have to account for those with MS_MAP_PATTERN alone and you can just write something simple like:<div><br></div><div>  MS_MAP_PATTERN "^\/etc\/mapserver"</div><div><br></div><div>You need to be running the latest version for this to work as intended and of course that's strongly recommended.</div><div><br></div><div>--Steve</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jun 3, 2021 at 8:12 AM Jeff McKenna via mapserver-users <<a href="mailto:mapserver-users@lists.osgeo.org">mapserver-users@lists.osgeo.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi David,<br>
<br>
MS4W also uses PCRE for its regex engine, so Windows users will soon be <br>
facing these same issues as you (I'll be making this as easy as possible <br>
for the new Windows users).<br>
<br>
So to answer your question: I believe most users aren't yet aware of <br>
what regex engine they use, and, also I believe that the PCRE regex <br>
engine is used more frequently in the MapServer community than what is <br>
believed.  (most automated tests do not use PCRE, for example, even <br>
though it is so commonly used)<br>
<br>
I'm not sure if I have the answer that you need, but I wanted to give a <br>
perspective from the Windows side.<br>
<br>
-jeff<br>
<br>
<br>
-- <br>
Jeff McKenna<br>
GatewayGeo: Developers of MS4W, MapServer Consulting and Training<br>
co-founder of FOSS4G<br>
<a href="http://gatewaygeo.com/" rel="noreferrer" target="_blank">http://gatewaygeo.com/</a><br>
<br>
<br>
<br>
On 2021-06-03 9:29 a.m., David Pavlíček via mapserver-users wrote:<br>
> Hi Steve,<br>
> your pattern works like a charm... escaped hyphen was the issue. I <br>
> tested the previous regex with <a href="http://regex101.com" rel="noreferrer" target="_blank">regex101.com</a> <<a href="http://regex101.com" rel="noreferrer" target="_blank">http://regex101.com</a>> and it <br>
> matches with no problems against most of the available variants except <br>
> PCRE. Which regex engine is suitable for a test against MapServer?<br>
> <br>
> Thank you.<br>
> <br>
> st 2. 6. 2021 v 15:16 odesílatel Steve Lime <<a href="mailto:sdlime@gmail.com" target="_blank">sdlime@gmail.com</a> <br>
> <mailto:<a href="mailto:sdlime@gmail.com" target="_blank">sdlime@gmail.com</a>>> napsal:<br>
> <br>
>     Hi David: Presumably the Docker image is running the most recent<br>
>     version of 7.4 which would have that pull request applied. That<br>
>     said, I don't think it's the culprit here and I have seen some<br>
>     issues with -'s where the MS_MAP_PATTERN expression compiles fine<br>
>     but doesn't match as expected. Re-writing the expression to move the<br>
>     - character can help. Try this:<br>
> <br>
>       <br>
>     MS_MAP_PATTERN=^\/etc\/mapserver\/([^\.][-_A-Za-z0-9\.]+\/{1})*([-_A-Za-z0-9\.]+\.map)$<br>
> <br>
>     --Steve<br>
> <br>
>     On Wed, Jun 2, 2021 at 3:07 AM David Pavlíček via mapserver-users<br>
>     <<a href="mailto:mapserver-users@lists.osgeo.org" target="_blank">mapserver-users@lists.osgeo.org</a><br>
>     <mailto:<a href="mailto:mapserver-users@lists.osgeo.org" target="_blank">mapserver-users@lists.osgeo.org</a>>> wrote:<br>
> <br>
>         Hello,<br>
>         I'm using camptocamp/mapserver:7.4 docker image to run mapserver<br>
>         on our servers and I have recently encountered this error:<br>
> <br>
>         [warn] [pid 25] mod_fcgid: stderr: msCGILoadMap(): Web<br>
>         application error. CGI variable "map" fails to validate.<br>
>         2098 - 172.17.0.1 - - [02/Jun/2021:04:57:42 +0000] "GET<br>
>         /?map=/etc/mapserver/puobod/krpk-puobod-red.map&request=getcapabilities&service=WMS"<br>
> <br>
>         In fact, any mapfile with hyphens won't work. They fail against<br>
>         MS_MAP_PATTERN regex or something. This is strange because I<br>
>         tested this regex and it works fine. Container MS ENV variables<br>
>         look like this:<br>
> <br>
>         MS_ERRORFILE=stderr<br>
>         MS_MAP_PATTERN=^\/etc\/mapserver\/([^\.][_A-Za-z0-9\-\.]+\/{1})*([_A-Za-z0-9\-\.]+\.map)$<br>
>         MS_DEBUGLEVEL=0<br>
>         MS_MAPFILE=/etc/mapserver/mapserver.map<br>
> <br>
>         Maybe something related to this PR:<br>
>         <a href="https://github.com/MapServer/MapServer/pull/6314" rel="noreferrer" target="_blank">https://github.com/MapServer/MapServer/pull/6314</a><br>
>         <<a href="https://github.com/MapServer/MapServer/pull/6314" rel="noreferrer" target="_blank">https://github.com/MapServer/MapServer/pull/6314</a>><br>
> <br>
>         Any suggestions about that? Renaming project is not an option<br>
>         because they are referenced in many places outside of our direct<br>
>         reach (GIS clients, servers, etc)<br>
> <br>
>         Thanks, David<br>
_______________________________________________<br>
mapserver-users mailing list<br>
<a href="mailto:mapserver-users@lists.osgeo.org" target="_blank">mapserver-users@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/mapserver-users" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/mapserver-users</a><br>
</blockquote></div>