diff options
| author | Stefan Fritsch <sf@sfritsch.de> | 2013-07-20 22:21:25 +0200 |
|---|---|---|
| committer | Stefan Fritsch <sf@sfritsch.de> | 2013-07-20 22:21:25 +0200 |
| commit | 4a336a5b117419c33c29eadd6409c69df78cd586 (patch) | |
| tree | c9787e4bd0f1be8f471e1883262a695a6c4e954f /modules/dav/fs/dbm.c | |
| parent | 717c182588f1eb0b7ef189a709f858b44e348489 (diff) | |
| download | apache2-upstream/2.4.6.tar.gz | |
Imported Upstream version 2.4.6upstream/2.4.6
Diffstat (limited to 'modules/dav/fs/dbm.c')
| -rw-r--r-- | modules/dav/fs/dbm.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/modules/dav/fs/dbm.c b/modules/dav/fs/dbm.c index 53a97e91..821168e8 100644 --- a/modules/dav/fs/dbm.c +++ b/modules/dav/fs/dbm.c @@ -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); } @@ -731,6 +739,10 @@ static dav_error * dav_propdb_get_rollback(dav_db *db, static dav_error * dav_propdb_apply_rollback(dav_db *db, dav_deadprop_rollback *rollback) { + if (!rollback) { + return NULL; /* no rollback, nothing to do */ + } + if (rollback->value.dptr == NULL) { /* don't fail if the thing isn't really there. */ (void) dav_dbm_delete(db, rollback->key); |
