]> granicus.if.org Git - apache/commitdiff
mod_dav: Do not fail PROPPATCH when prop namespace is not known. PR 52559
authorGraham Leggett <minfrin@apache.org>
Sun, 26 May 2013 19:58:20 +0000 (19:58 +0000)
committerGraham Leggett <minfrin@apache.org>
Sun, 26 May 2013 19:58:20 +0000 (19:58 +0000)
trunk patch: http://svn.apache.org/r1476644
Submitted by: Diego Santa Cruz <diego.santaCruz spinetix.com>
Reviewed by: minfrin, jim, jorton

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1486459 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
STATUS
modules/dav/fs/dbm.c

diff --git a/CHANGES b/CHANGES
index 13bbbde2e4803b17e476667bb9049a9e7cf5c79b..0d2d1c0470f2d0b2dd4a94698a8869a8cf3f52b0 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,9 @@
 
 Changes with Apache 2.4.5
 
+  *) mod_dav: Do not fail PROPPATCH when prop namespace is not known.
+     PR 52559 [Diego Santa Cruz <diego.santaCruz spinetix.com>]
+
   *) 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 [Diego Santa Cruz
diff --git a/STATUS b/STATUS
index 11fa7b724e9985a555186fe5fc4bafcdb5c614fc..af4e6eb8be1d31f6dd1beb46a6136f02ba31cdd7 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -90,11 +90,6 @@ RELEASE SHOWSTOPPERS:
 PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
   [ start all new proposals below, under PATCHES PROPOSED. ]
   
-    * mod_dav: Do not fail PROPPATCH when prop namespace is not known. PR 52559
-      trunk patch: http://svn.apache.org/r1476644
-      2.4.x patch: trunk patch works (minus CHANGES)
-      +1: minfrin, jim, jorton
-
     * mod_dav: Sending a MERGE request against a URI handled by mod_dav_svn with
       the source href (sent as part of the request body as XML) pointing to a
       URI that is not configured for DAV will trigger a segfault.
index 9089373991a924f2ddbecd79f6f7599f4d153eba..821168e887e272a0e035ec425563a230f1c43651 100644 (file)
@@ -191,7 +191,15 @@ void dav_dbm_close(dav_db *db)
 
 dav_error * dav_dbm_fetch(dav_db *db, apr_datum_t key, apr_datum_t *pvalue)
 {
-    apr_status_t status = apr_dbm_fetch(db->file, key, pvalue);
+    apr_status_t status;
+
+    if (!key.dptr) {
+        /* no key could be created (namespace not known) => no value */
+        memset(pvalue, 0, sizeof(*pvalue));
+        status = APR_SUCCESS;
+    } else {
+        status = apr_dbm_fetch(db->file, key, pvalue);
+    }
 
     return dav_fs_dbm_error(db, NULL, status);
 }