\w+)/(?P\d+)/?$ { set_form_input $columns; set_form_input $values; array_split ',' $values to=$arra...">

array_map_op causes "Internal Server Error" · Issue #1 · openresty/array-var-nginx-module (original) (raw)

The below config will cause "Internal Server Error" from Nginx 0.8.41:

location ~ ^/(?P<table>\w+)/(?P<id>\d+)/?$ {
    set_form_input    $columns;
    set_form_input    $values;
    array_split       ',' <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>v</mi><mi>a</mi><mi>l</mi><mi>u</mi><mi>e</mi><mi>s</mi><mi>t</mi><mi>o</mi><mo>=</mo></mrow><annotation encoding="application/x-tex">values to=</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6944em;"></span><span class="mord mathnormal" style="margin-right:0.03588em;">v</span><span class="mord mathnormal">a</span><span class="mord mathnormal" style="margin-right:0.01968em;">l</span><span class="mord mathnormal">u</span><span class="mord mathnormal">es</span><span class="mord mathnormal">t</span><span class="mord mathnormal">o</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span></span></span></span>array;
    array_map_op      set_quote_sql_str $array;
    array_join        ',' <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>a</mi><mi>r</mi><mi>r</mi><mi>a</mi><mi>y</mi><mi>t</mi><mi>o</mi><mo>=</mo></mrow><annotation encoding="application/x-tex">array to=</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8095em;vertical-align:-0.1944em;"></span><span class="mord mathnormal">a</span><span class="mord mathnormal" style="margin-right:0.02778em;">rr</span><span class="mord mathnormal">a</span><span class="mord mathnormal" style="margin-right:0.03588em;">y</span><span class="mord mathnormal">t</span><span class="mord mathnormal">o</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span></span></span></span>sql_args;

    echo $sql_args;
}

Removing the array_map_op line allows it to complete successfully.

Test with:

curl -d "columns=username,password&values=joe,secret" http://localhost/users/1