Return-Path: X-Original-To: apmail-httpd-cvs-archive@www.apache.org Delivered-To: apmail-httpd-cvs-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id ABAEDCC71 for ; Thu, 27 Jun 2013 16:54:39 +0000 (UTC) Received: (qmail 26229 invoked by uid 500); 27 Jun 2013 16:54:39 -0000 Delivered-To: apmail-httpd-cvs-archive@httpd.apache.org Received: (qmail 26072 invoked by uid 500); 27 Jun 2013 16:54:38 -0000 Mailing-List: contact cvs-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list cvs@httpd.apache.org Received: (qmail 26065 invoked by uid 99); 27 Jun 2013 16:54:37 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 27 Jun 2013 16:54:37 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 27 Jun 2013 16:54:34 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id A45942388847; Thu, 27 Jun 2013 16:54:14 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1497441 - in /httpd/httpd/branches/2.2.x: ./ CHANGES STATUS modules/dav/main/mod_dav.c Date: Thu, 27 Jun 2013 16:54:14 -0000 To: cvs@httpd.apache.org From: wrowe@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20130627165414.A45942388847@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: wrowe Date: Thu Jun 27 16:54:14 2013 New Revision: 1497441 URL: http://svn.apache.org/r1497441 Log: mod_dav: Sending a If or If-Match header with an invalid ETag doesn't result in a 412 Precondition Failed. PR: 54610 Submitted by: Timothy Wood Backports: r1476604 (2.4: r1486456) Reviewed by: minfrin, wrowe, rjung rjung plans to mention that this is for the COPY method only (in CHANGES of 2.2 and 2.4 branches and these three commit messages). Modified: httpd/httpd/branches/2.2.x/ (props changed) httpd/httpd/branches/2.2.x/CHANGES httpd/httpd/branches/2.2.x/STATUS httpd/httpd/branches/2.2.x/modules/dav/main/mod_dav.c Propchange: httpd/httpd/branches/2.2.x/ ------------------------------------------------------------------------------ Merged /httpd/httpd/trunk:r1476604 Modified: httpd/httpd/branches/2.2.x/CHANGES URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/CHANGES?rev=1497441&r1=1497440&r2=1497441&view=diff ============================================================================== --- httpd/httpd/branches/2.2.x/CHANGES [utf-8] (original) +++ httpd/httpd/branches/2.2.x/CHANGES [utf-8] Thu Jun 27 16:54:14 2013 @@ -38,6 +38,10 @@ Changes with Apache 2.2.25 *) mod_dav: Make sure that when we prepare an If URL for Etag comparison, we compare unencoded paths. PR 53910 [Timothy Wood ] + *) mod_dav: Sending a If or If-Match header with an invalid ETag doesn't + result in a 412 Precondition Failed. PR54610 [Timothy Wood + ] + Changes with Apache 2.2.24 *) SECURITY: CVE-2012-3499 (cve.mitre.org) Modified: httpd/httpd/branches/2.2.x/STATUS URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/STATUS?rev=1497441&r1=1497440&r2=1497441&view=diff ============================================================================== --- httpd/httpd/branches/2.2.x/STATUS (original) +++ httpd/httpd/branches/2.2.x/STATUS Thu Jun 27 16:54:14 2013 @@ -96,18 +96,6 @@ RELEASE SHOWSTOPPERS: PATCHES ACCEPTED TO BACKPORT FROM TRUNK: [ start all new proposals below, under PATCHES PROPOSED. ] - * mod_dav: Sending a If or If-Match header with an invalid ETag doesn't - result in a 412 Precondition Failed. PR54610 - [Timothy Wood ] - trunk patch: http://svn.apache.org/r1476604 - 2.4.x patch: http://svn.apache.org/r1486456 - 2.2.x patch: trunk patch works (minus CHANGES) - +1: minfrin, wrowe, rjung - rjung: I think we should also mention that this is for the COPY - method only (mention in CHANGES of 2.2 and 2.4 and the three - commit messages). - wrowe: feel free to enhance the commit message/CHANGES across all branches. - * mod_dav: When a PROPPATCH attempts to remove a non-existent dead property on a resource for which there is no dead property in the same namespace httpd segfaults. PR 52559 Modified: httpd/httpd/branches/2.2.x/modules/dav/main/mod_dav.c URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/modules/dav/main/mod_dav.c?rev=1497441&r1=1497440&r2=1497441&view=diff ============================================================================== --- httpd/httpd/branches/2.2.x/modules/dav/main/mod_dav.c (original) +++ httpd/httpd/branches/2.2.x/modules/dav/main/mod_dav.c Thu Jun 27 16:54:14 2013 @@ -2719,10 +2719,10 @@ static int dav_method_copymove(request_r } /* - * Check If-Headers and existing locks for each resource in the source - * if we are performing a MOVE. We will return a 424 response with a - * DAV:multistatus body. The multistatus responses will contain the - * information about any resource that fails the validation. + * Check If-Headers and existing locks for each resource in the source. + * We will return a 424 response with a DAV:multistatus body. + * The multistatus responses will contain the information about any + * resource that fails the validation. * * We check the parent resource, too, since this is a MOVE. Moving the * resource effectively removes it from the parent collection, so we @@ -2731,17 +2731,17 @@ static int dav_method_copymove(request_r * If a problem occurs with the Request-URI itself, then a plain error * (rather than a multistatus) will be returned. */ - if (is_move - && (err = dav_validate_request(r, resource, depth, NULL, - &multi_response, - DAV_VALIDATE_PARENT - | DAV_VALIDATE_USE_424, - NULL)) != NULL) { + if ((err = dav_validate_request(r, resource, depth, NULL, + &multi_response, + DAV_VALIDATE_PARENT + | DAV_VALIDATE_USE_424, + NULL)) != NULL) { err = dav_push_error(r->pool, err->status, 0, apr_psprintf(r->pool, - "Could not MOVE %s due to a failed " + "Could not %s %s due to a failed " "precondition on the source " "(e.g. locks).", + is_move ? "MOVE" : "COPY", ap_escape_html(r->pool, r->uri)), err); return dav_handle_err(r, err, multi_response);