blob: b56804cebe1b04867b82397f751e4ac36d466258 [file] [log] [blame]
Andrew Geissler4b740dc2020-05-05 08:54:39 -05001From 8576e0c218634e6f7ed1b6ff02fa164fb0c75f86 Mon Sep 17 00:00:00 2001
2From: Mingli Yu <mingli.yu@windriver.com>
3Date: Wed, 29 Apr 2020 03:50:32 +0000
4Subject: [PATCH] iputils_md5dig.h: Initialize libgcrypt
5
6Initialize libgcrypt on first use otherwise
7there comes below warning when check the status
8of the ninfod.service.
9 # systemctl status ninfod.service
10 * ninfod.service - Respond to IPv6 Node Information Queries
11 Loaded: loaded (/lib/systemd/system/ninfod.service; enabled; vendor preset: enabled)
12 Active: active (running) since Wed 2020-04-29 05:18:21 UTC; 36s ago
13 Docs: man:ninfod(8)
14 Main PID: 347 (ninfod)
15 Tasks: 1 (limit: 9382)
16 Memory: 1.2M
17 CGroup: /system.slice/ninfod.service
18 `-347 /sbin/ninfod -d
19
20 Apr 29 05:18:21 intel-x86-64 systemd[1]: Started Respond to IPv6 Node Information Queries.
21 Apr 29 05:18:24 intel-x86-64 ninfod[347]: Libgcrypt warning: missing initialization - please fix the application
22
23Upstream-Status: Inappropriate [the upstream avoids linking to crypto libraries in
24 commit 214ed83 common: copy md5 implementation to iputils project]
25
26Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
27---
28 iputils_md5dig.h | 9 +++++++++
29 1 file changed, 9 insertions(+)
30
31diff --git a/iputils_md5dig.h b/iputils_md5dig.h
32index bfa7f02..3cc3fbf 100644
33--- a/iputils_md5dig.h
34+++ b/iputils_md5dig.h
35@@ -24,8 +24,17 @@ typedef struct {
36 gcry_md_hd_t dig;
37 } iputils_md5dig_ctx;
38
39+void maybeInit()
40+{
41+ if (!gcry_control(GCRYCTL_INITIALIZATION_FINISHED_P))
42+ {
43+ gcry_control(GCRYCTL_INITIALIZATION_FINISHED, 0);
44+ }
45+}
46+
47 static void iputils_md5dig_init(iputils_md5dig_ctx *ctx)
48 {
49+ maybeInit();
50 if (gcry_md_open(&ctx->dig, GCRY_MD_MD5, 0) != GPG_ERR_NO_ERROR)
51 abort();
52 return;
53--
542.24.1
55