*************************************************/
/* Copyright (c) University of Cambridge 1995 - 2018 */
-/* Copyright (c) The Exim Maintainers 2020 */
+/* Copyright (c) The Exim Maintainers 2020 - 2021 */
/* See the file NOTICE for conditions of use and distribution. */
#include "../exim.h"
/* 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);
}
}
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 FAIL;
}
-if (!res) *do_cache = 0;
+if (!res) *do_cache = 0; /* on fail, wipe cache */
*result = string_from_gstring(res);
return OK;