You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by sf...@apache.org on 2011/09/05 20:45:30 UTC

svn commit: r1165381 - in /httpd/httpd/branches/2.2.x: CHANGES STATUS modules/dav/fs/dbm.c

Author: sf
Date: Mon Sep  5 18:45:29 2011
New Revision: 1165381

URL: http://svn.apache.org/viewvc?rev=1165381&view=rev
Log:
Backport r1133152, r1133158:

Fix segfault and log proper error message if apr DBM driver cannot be loaded.

PR: 51751
Reviewed by: sf, trawick, rpluem

Modified:
    httpd/httpd/branches/2.2.x/CHANGES
    httpd/httpd/branches/2.2.x/STATUS
    httpd/httpd/branches/2.2.x/modules/dav/fs/dbm.c

Modified: httpd/httpd/branches/2.2.x/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/CHANGES?rev=1165381&r1=1165380&r2=1165381&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/CHANGES [utf-8] (original)
+++ httpd/httpd/branches/2.2.x/CHANGES [utf-8] Mon Sep  5 18:45:29 2011
@@ -1,13 +1,16 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.2.21
 
+  *) mod_dav_fs: Fix segfault if apr DBM driver cannot be loaded. PR 51751.
+     [Stefan Fritsch]
+
   *) mod_alias: Adjust log severity of "incomplete redirection target"
      message. PR 44020.
 
- *) mod_rewrite: Check validity of each internal (int:) RewriteMap even if the
-    RewriteEngine is disabled in server context, avoiding a crash while
-    referencing the invalid int: map at runtime. PR 50994.
-    [Ben Noordhuis <info noordhuis nl>]
+  *) mod_rewrite: Check validity of each internal (int:) RewriteMap even if the
+     RewriteEngine is disabled in server context, avoiding a crash while
+     referencing the invalid int: map at runtime. PR 50994.
+     [Ben Noordhuis <info noordhuis nl>]
 
   *) core: Add MaxRanges directive to control the number of ranges permitted
      before returning the entire resource, with a default limit of 200.

Modified: httpd/httpd/branches/2.2.x/STATUS
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/STATUS?rev=1165381&r1=1165380&r2=1165381&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/STATUS (original)
+++ httpd/httpd/branches/2.2.x/STATUS Mon Sep  5 18:45:29 2011
@@ -93,13 +93,6 @@ RELEASE SHOWSTOPPERS:
 PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
   [ start all new proposals below, under PATCHES PROPOSED. ]
 
-  * mod_dav_fs: Fix segfault and log proper error message if apr DBM driver
-    cannot be loaded. PR 51751
-    Trunk patch: http://svn.apache.org/viewvc?rev=1133152&view=rev
-                 http://svn.apache.org/viewvc?rev=1133158&view=rev
-    2.2.x patch: http://people.apache.org/~sf/PR51751.diff
-    +1: sf, trawick, rpluem
-
  PATCHES PROPOSED TO BACKPORT FROM TRUNK:
   [ New proposals should be added at the end of the list ]
 

Modified: httpd/httpd/branches/2.2.x/modules/dav/fs/dbm.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/modules/dav/fs/dbm.c?rev=1165381&r1=1165380&r2=1165381&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/modules/dav/fs/dbm.c (original)
+++ httpd/httpd/branches/2.2.x/modules/dav/fs/dbm.c Mon Sep  5 18:45:29 2011
@@ -39,6 +39,7 @@
 
 #include "mod_dav.h"
 #include "repos.h"
+#include "http_log.h"
 
 
 struct dav_db {
@@ -94,6 +95,9 @@ static dav_error * dav_fs_dbm_error(dav_
     if (db == NULL) {
         errcode = 1;
         errstr = "Could not open property database.";
+        if (APR_STATUS_IS_EDSOOPEN(status))
+            ap_log_error(APLOG_MARK, APLOG_CRIT, status, NULL,
+                         "The DBM driver could not be loaded");
     }
     else {
         (void) apr_dbm_geterror(db->file, &errcode, errbuf, sizeof(errbuf));
@@ -124,7 +128,7 @@ dav_error * dav_dbm_open_direct(apr_pool
                                 dav_db **pdb)
 {
     apr_status_t status;
-    apr_dbm_t *file;
+    apr_dbm_t *file = NULL;
 
     *pdb = NULL;