Andrew Geissler | 4b740dc | 2020-05-05 08:54:39 -0500 | [diff] [blame^] | 1 | From 8576e0c218634e6f7ed1b6ff02fa164fb0c75f86 Mon Sep 17 00:00:00 2001 |
| 2 | From: Mingli Yu <mingli.yu@windriver.com> |
| 3 | Date: Wed, 29 Apr 2020 03:50:32 +0000 |
| 4 | Subject: [PATCH] iputils_md5dig.h: Initialize libgcrypt |
| 5 | |
| 6 | Initialize libgcrypt on first use otherwise |
| 7 | there comes below warning when check the status |
| 8 | of 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 | |
| 23 | Upstream-Status: Inappropriate [the upstream avoids linking to crypto libraries in |
| 24 | commit 214ed83 common: copy md5 implementation to iputils project] |
| 25 | |
| 26 | Signed-off-by: Mingli Yu <mingli.yu@windriver.com> |
| 27 | --- |
| 28 | iputils_md5dig.h | 9 +++++++++ |
| 29 | 1 file changed, 9 insertions(+) |
| 30 | |
| 31 | diff --git a/iputils_md5dig.h b/iputils_md5dig.h |
| 32 | index 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 | -- |
| 54 | 2.24.1 |
| 55 | |