git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Lookups: fix dbmnz crash on zero-length datum. Bug 3079
[exim.git]
/
src
/
src
/
lookups
/
dbmdb.c
diff --git
a/src/src/lookups/dbmdb.c
b/src/src/lookups/dbmdb.c
index aa930e6543ee097352c2f1656f73647a23bbf95e..96665b6e4e68d7204b29db0e1fb16409a1b8623a 100644
(file)
--- a/
src/src/lookups/dbmdb.c
+++ b/
src/src/lookups/dbmdb.c
@@
-102,7
+102,8
@@
exim_datum_size_set(&key, length);
if (exim_dbget(d, &key, &data))
{
if (exim_dbget(d, &key, &data))
{
- *result = string_copyn(exim_datum_data_get(&data), exim_datum_size_get(&data));
+ unsigned len = exim_datum_size_get(&data);
+ *result = len > 0 ? string_copyn(exim_datum_data_get(&data), len) : US"";
exim_datum_free(&data); /* Some DBM libraries need a free() call */
return OK;
}
exim_datum_free(&data); /* Some DBM libraries need a free() call */
return OK;
}
@@
-283,3
+284,5
@@
static lookup_info *_lookup_list[] = { &dbm_lookup_info, &dbmz_lookup_info, &dbm
lookup_module_info dbmdb_lookup_module_info = { LOOKUP_MODULE_INFO_MAGIC, _lookup_list, 3 };
/* End of lookups/dbmdb.c */
lookup_module_info dbmdb_lookup_module_info = { LOOKUP_MODULE_INFO_MAGIC, _lookup_list, 3 };
/* End of lookups/dbmdb.c */
+/* vi: aw ai sw=2
+*/