From: Timo Sirainen Date: Mon, 21 Jan 2013 16:33:55 +0000 (+0200) Subject: dict-cdb: Handle cdb_read() errors. X-Git-Tag: 2.2.beta2~184 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f86f5b0a323047cbf37c3e855592efd2efe52e8a;p=thirdparty%2Fdovecot%2Fcore.git dict-cdb: Handle cdb_read() errors. --- diff --git a/src/lib-dict/dict-cdb.c b/src/lib-dict/dict-cdb.c index ea9ee13e57..41f226786b 100644 --- a/src/lib-dict/dict-cdb.c +++ b/src/lib-dict/dict-cdb.c @@ -102,7 +102,7 @@ static int cdb_dict_lookup(struct dict *_dict, pool_t pool, *value_r = NULL; /* something bad with db */ if (ret < 0) { - i_error("cdb_lookup(%s) failed: %m", dict->path); + i_error("cdb_find(%s) failed: %m", dict->path); return -1; } /* found nothing */ @@ -110,8 +110,11 @@ static int cdb_dict_lookup(struct dict *_dict, pool_t pool, } datalen = cdb_datalen(&dict->cdb); - data = p_new(pool, char, datalen + 1); - cdb_read(&dict->cdb, data, datalen, cdb_datapos(&dict->cdb)); + data = p_malloc(pool, datalen + 1); + if (cdb_read(&dict->cdb, data, datalen, cdb_datapos(&dict->cdb)) < 0) { + i_error("cdb_read(%s) failed: %m", dict->path); + return -1; + } *value_r = data; return 1; }