SPDX: license tags (mostly by guesswork)
[exim.git] / src / src / lookups / json.c
index 487b9b52d21e08f310412a402189f44e9803c3de..b1e5fb742cf9a4d6dc3bd927c032d6afd83d61c9 100644 (file)
@@ -2,8 +2,10 @@
 *     Exim - an Internet mail transport agent    *
 *************************************************/
 
-/* Copyright (c) Jeremy Harris 2019 */
+/* Copyright (c) The Exim Maintainers 2021 - 2022 */
+/* Copyright (c) Jeremy Harris 2019 - 2020 */
 /* See the file NOTICE for conditions of use and distribution. */
+/* SPDX-License-Identifier: GPL-2.0-only */
 
 #include "../exim.h"
 #include "lf_functions.h"
@@ -23,7 +25,7 @@ Assume that the file is trusted, so no tainting */
 static void *
 json_malloc(size_t nbytes)
 {
-void * p = store_get((int)nbytes, FALSE);
+void * p = store_get((int)nbytes, GET_UNTAINTED);
 /* debug_printf("%s %d: %p\n", __FUNCTION__, (int)nbytes, p); */
 return p;
 }
@@ -47,12 +49,7 @@ FILE * f;
 json_set_alloc_funcs(json_malloc, json_free);
 
 if (!(f = Ufopen(filename, "rb")))
-  {
-  int save_errno = errno;
-  *errmsg = string_open_failed(errno, "%s for json search", filename);
-  errno = save_errno;
-  return NULL;
-  }
+  *errmsg = string_open_failed("%s for json search", filename);
 return f;
 }
 
@@ -89,9 +86,6 @@ json_error_t jerr;
 uschar * key;
 int sep = 0;
 
-length = length;       /* Keep picky compilers happy */
-do_cache = do_cache;   /* Keep picky compilers happy */
-
 rewind(f);
 if (!(j = json_loadf(f, 0, &jerr)))
   {
@@ -165,23 +159,23 @@ json_close(void *handle)
 
 #include "../version.h"
 
-void
-json_version_report(FILE *f)
+gstring *
+json_version_report(gstring * g)
 {
-fprintf(f, "Library version: json: Jansonn version %s\n", JANSSON_VERSION);
+return string_fmt_append(g, "Library version: json: Jansonn version %s\n", JANSSON_VERSION);
 }
 
 
 static lookup_info json_lookup_info = {
-  US"json",                      /* lookup name */
-  lookup_absfile,                /* uses absolute file name */
-  json_open,                  /* open function */
-  json_check,                 /* check function */
-  json_find,                  /* find function */
-  json_close,                 /* close function */
-  NULL,                          /* no tidy function */
-  NULL,                          /* no quoting function */
-  json_version_report         /* version reporting */
+  .name = US"json",                    /* lookup name */
+  .type = lookup_absfile,              /* uses absolute file name */
+  .open = json_open,                   /* open function */
+  .check = json_check,                 /* check function */
+  .find = json_find,                   /* find function */
+  .close = json_close,                 /* close function */
+  .tidy = NULL,                                /* no tidy function */
+  .quote = NULL,                       /* no quoting function */
+  .version_report = json_version_report         /* version reporting */
 };