From 8c113d2459b461a02927b1ce29207354cb1c275f Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Fri, 15 Jan 2021 15:32:10 +0100 Subject: [PATCH] avoid warning if file does not exist --- src/exchange-tools/taler-exchange-offline.c | 50 +++++++++++---------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/src/exchange-tools/taler-exchange-offline.c b/src/exchange-tools/taler-exchange-offline.c index 59e0b0a40..18c8a7b18 100644 --- a/src/exchange-tools/taler-exchange-offline.c +++ b/src/exchange-tools/taler-exchange-offline.c @@ -2334,34 +2334,38 @@ tofu_check (const struct TALER_SecurityModulePublicKeyP secm[2]) "SECM_TOFU_FILE"); return GNUNET_SYSERR; } - ret = GNUNET_DISK_fn_read (fn, - &old, - sizeof (old)); - if (GNUNET_SYSERR != ret) + if (GNUNET_OK == + GNUNET_DISK_file_test (fn)) { - if (ret != sizeof (old)) + ret = GNUNET_DISK_fn_read (fn, + &old, + sizeof (old)); + if (GNUNET_SYSERR != ret) { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, - "File `%s' corrupt\n", - fn); + if (ret != sizeof (old)) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "File `%s' corrupt\n", + fn); + GNUNET_free (fn); + return GNUNET_SYSERR; + } + /* TOFU check */ + if (0 != memcmp (old, + secm, + sizeof (old))) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "Fatal: security module keys changed (file `%s')!\n", + fn); + GNUNET_free (fn); + return GNUNET_SYSERR; + } GNUNET_free (fn); - return GNUNET_SYSERR; + return GNUNET_OK; } - /* TOFU check */ - if (0 != memcmp (old, - secm, - sizeof (old))) - { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, - "Fatal: security module keys changed (file `%s')!\n", - fn); - GNUNET_free (fn); - return GNUNET_SYSERR; - } - GNUNET_free (fn); - return GNUNET_OK; } - else + { char *key;