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
Propagate null gstring through string_catn()
[exim.git]
/
src
/
src
/
lookups
/
sqlite.c
diff --git
a/src/src/lookups/sqlite.c
b/src/src/lookups/sqlite.c
index 4c1412bae1a6ba713deb216a2cd4e6db71b864c4..d8a11ba1294897001964023c4cafb644381a049b 100644
(file)
--- a/
src/src/lookups/sqlite.c
+++ b/
src/src/lookups/sqlite.c
@@
-66,7
+66,7
@@
if (argc > 1)
/* For multiple fields, include the field name too */
for (int i = 0; i < argc; i++)
{
/* For multiple fields, include the field name too */
for (int i = 0; i < argc; i++)
{
- uschar *
value = US((argv[i] != NULL)? argv[i]:
"<NULL>");
+ uschar *
value = US(argv[i] ? argv[i] :
"<NULL>");
res = lf_quote(US azColName[i], value, Ustrlen(value), res);
}
}
res = lf_quote(US azColName[i], value, Ustrlen(value), res);
}
}
@@
-74,7
+74,8
@@
if (argc > 1)
else
res = string_cat(res, argv[0] ? US argv[0] : US "<NULL>");
else
res = string_cat(res, argv[0] ? US argv[0] : US "<NULL>");
-*(gstring **)arg = res;
+/* always return a non-null gstring, even for a zero-length string result */
+*(gstring **)arg = res ? res : string_get(1);
return 0;
}
return 0;
}
@@
-94,7
+95,7
@@
if (ret != SQLITE_OK)
return FAIL;
}
return FAIL;
}
-if (!res) *do_cache = 0;
+if (!res) *do_cache = 0;
/* on fail, wipe cache */
*result = string_from_gstring(res);
return OK;
*result = string_from_gstring(res);
return OK;