<div dir="ltr"><p style="font-size:12.8px">Hello,</p><p style="font-size:12.8px">I've a rule below in nginx config to 404 if the argument of search query is a non printable ascii character. Nginx is compiled with pcre and pcre seem** (refer 4.d below) to have utf8 support and unicode support enabled but nginx fails with "pcre_exec() failed: -10" error when it encounters the regex. </p><p style="font-size:12.8px">Any pointers, please? Please refer below for more details.</p><p style="font-size:12.8px">TIA,</p><p style="font-size:12.8px">Krishna!</p><p style="font-size:12.8px"><b>1. from nginx config</b></p><p style="font-size:12.8px">if ($args ~ "(*UTF8)^.*[^\x21-\x7E].*$") {</p><p style="font-size:12.8px">         return 404;</p><p style="font-size:12.8px"></p><p style="font-size:12.8px">     }</p><p style="font-size:12.8px"><b>..</b></p><p style="font-size:12.8px"><br></p><p style="font-size:12.8px"><b>2. from access log:</b></p><p style="font-size:12.8px">54.169.206.188 [26/Jan/2016:20:29:10 /search?userQuery=Taurm\xE9+Taurme+Corporate+Casual+Slip+On+Shoe+()<br></p><p style="font-size:12.8px"><b>3. from error log:</b></p><p style="font-size:12.8px">2016/01/26 20:29:10 [alert] 27700#0: *43933484 on "userQuery=Taurm+Taurme+Corporate+Casual+Slip+On+Shoe+()" using "(*UTF8)^.*[^\x00-\x7F].*$", client: 54.169.206.188, server: <a href="http://search.paytm.com/" target="_blank">search.paytm.com</a>, request: "GET /search?userQuery=Taurm+Taurme+Corporate+Casual+Slip+On+Shoe+() HTTP/1.1", host: "<a href="http://search.paytm.com/" target="_blank">search.paytm.com</a>"</p><p style="font-size:12.8px"><b>4. nginx and pcre </b></p><p style="font-size:12.8px">a) nginx -V</p><p style="font-size:12.8px"></p><p style="font-size:12.8px">nginx version: openresty/<a href="http://1.7.2.1/" target="_blank">1.7.2.1</a></p><p style="font-size:12.8px">b) ldd /usr/sbin/nginx|grep pcre</p><p style="font-size:12.8px"></p><p style="font-size:12.8px"></p><p style="font-size:12.8px">        lib<b>pcre</b>.so.3 => /lib/x86_64-linux-gnu/lib<b>pcre</b>.so.3 (0x00007fbdb64a7000)</p><div style="font-size:12.8px">c) dpkg -l|grep pcre</div><p style="font-size:12.8px">ii  lib<b>pcre</b>3:amd64                   1:8.31-2ubuntu2.1             amd64        Perl 5 Compatible Regular Expression Library - runtime files</p><p style="font-size:12.8px">**d) Since ubuntu no longer ships with pcretest, there was no easy way to see if utf8 support is enabled but from ubuntu package build logs for our version, I can see that is how it is built. Also, can confirm the same from config.log when building the debian package locally on my machine: </p><p style="font-size:12.8px"><a href="https://launchpadlibrarian.net/212590020/buildlog_ubuntu-trusty-amd64.pcre3_1%3A8.31-2ubuntu2.1_BUILDING.txt.gz" target="_blank">https://launchpadlibrarian.net/212590020/buildlog_ubuntu-trusty-amd64.pcre3_1%3A8.31-2ubuntu2.1_BUILDING.txt.gz</a></p></div>