From 8576e0c218634e6f7ed1b6ff02fa164fb0c75f86 Mon Sep 17 00:00:00 2001 From: Mingli Yu Date: Wed, 29 Apr 2020 03:50:32 +0000 Subject: [PATCH] iputils_md5dig.h: Initialize libgcrypt Initialize libgcrypt on first use otherwise there comes below warning when check the status of the ninfod.service. # systemctl status ninfod.service * ninfod.service - Respond to IPv6 Node Information Queries Loaded: loaded (/lib/systemd/system/ninfod.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2020-04-29 05:18:21 UTC; 36s ago Docs: man:ninfod(8) Main PID: 347 (ninfod) Tasks: 1 (limit: 9382) Memory: 1.2M CGroup: /system.slice/ninfod.service `-347 /sbin/ninfod -d Apr 29 05:18:21 intel-x86-64 systemd[1]: Started Respond to IPv6 Node Information Queries. Apr 29 05:18:24 intel-x86-64 ninfod[347]: Libgcrypt warning: missing initialization - please fix the application Upstream-Status: Inappropriate [the upstream avoids linking to crypto libraries in commit 214ed83 common: copy md5 implementation to iputils project] Signed-off-by: Mingli Yu --- iputils_md5dig.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/iputils_md5dig.h b/iputils_md5dig.h index bfa7f02..3cc3fbf 100644 --- a/iputils_md5dig.h +++ b/iputils_md5dig.h @@ -24,8 +24,17 @@ typedef struct { gcry_md_hd_t dig; } iputils_md5dig_ctx; +void maybeInit() +{ + if (!gcry_control(GCRYCTL_INITIALIZATION_FINISHED_P)) + { + gcry_control(GCRYCTL_INITIALIZATION_FINISHED, 0); + } +} + static void iputils_md5dig_init(iputils_md5dig_ctx *ctx) { + maybeInit(); if (gcry_md_open(&ctx->dig, GCRY_MD_MD5, 0) != GPG_ERR_NO_ERROR) abort(); return; -- 2.24.1