On Wed, Dec 16, 2020 at 6:36 PM Yann Ylavic <[email protected]> wrote:
>
> On Wed, Dec 16, 2020 at 5:23 PM <[email protected]> wrote:
> >
> > - /* only act if starts-with "text/" or contains "xml" */
> > - if (strncmp(ctype, "text/", 5) && !strstr(ctype, "xml")) {
> > + /* only act if starts-with "text/" or contains "+xml" */
> > + if (strncmp(ctype, "text/", 5) && !strstr(ctype, "+xml")) {
> > ap_remove_output_filter(f);
> > return ap_pass_brigade(f->next, bb) ;
> > }
>
> Wouldn't this stop matching "application/xml" for instance?
>
> Possibly this test instead:
> if (strncmp(ctype, "text/", 5)
> && (!(x = strstr(ctype, "xml"))
> || x == ctype || !strchr("/+", x[-1]))) {
> ?
I would even remove the "text/" check (why act on "text/plain" for
instance), so maybe:
if (!(x = strstr(ctype, "xml"))
|| x == ctype || !strchr("/+", x[-1])
|| apr_isalnum(x[3])) {
?