Commit dce85bec authored by Roy T. Fielding's avatar Roy T. Fielding
Browse files

Remove CGI block on OPTIONS method so that scripts can

respond to OPTIONS directly rather than via server default.

PR: 15242
Reviewed-by: Paul Querna, Andre Malo, William A. Rowe, Jr.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@326255 13f79535-47bb-0310-9956-ffa450edef68
parent 6fbb9581
Loading
Loading
Loading
Loading
+6 −0
Changes for CHANGES: 6 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -896,6 +896,12 @@ Changes with Apache 2.1.1
  [Apache 2.1.0-dev includes those bug fixes and changes with the
   Apache 2.0.xx tree as documented, and except as noted, below.]
Changes with Apache 2.0.56
  *) mod_cgi(d): Remove block on OPTIONS method so that scripts can
     respond to OPTIONS directly rather than via server default.
     [Roy Fielding] PR 15242
Changes with Apache 2.0.55
  *) SECURITY: CAN-2005-2088 (cve.mitre.org)
+0 −7
Changes for modules/generators/mod_cgi.c: 0 added lines, 7 removed lines.
Original line number Diff line number Diff line
@@ -756,13 +756,6 @@ static int cgi_handler(request_rec *r)

    p = r->main ? r->main->pool : r->pool;

    if (r->method_number == M_OPTIONS) {
        /* 99 out of 100 CGI scripts, this is all they support */
        r->allowed |= (AP_METHOD_BIT << M_GET);
        r->allowed |= (AP_METHOD_BIT << M_POST);
        return DECLINED;
    }

    argv0 = apr_filepath_name_get(r->filename);
    nph = !(strncmp(argv0, "nph-", 4));
    conf = ap_get_module_config(r->server->module_config, &cgi_module);
+0 −7
Changes for modules/generators/mod_cgid.c: 0 added lines, 7 removed lines.
Original line number Diff line number Diff line
@@ -1290,13 +1290,6 @@ static int cgid_handler(request_rec *r)
    if (strcmp(r->handler,CGI_MAGIC_TYPE) && strcmp(r->handler,"cgi-script"))
        return DECLINED;

    if (r->method_number == M_OPTIONS) { 
        /* 99 out of 100 cgid scripts, this is all they support */ 
        r->allowed |= (AP_METHOD_BIT << M_GET); 
        r->allowed |= (AP_METHOD_BIT << M_POST); 
        return DECLINED; 
    } 

    conf = ap_get_module_config(r->server->module_config, &cgid_module); 
    is_included = !strcmp(r->protocol, "INCLUDED");