From a90716cd4d5bd6e580ef3a671ac37378c6c3acca Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Tue, 8 Jun 2021 15:33:36 +0200 Subject: [PATCH] receiver: Avoid division by 0 after system start if CLOCK_MONOTONIC is used Depending on how CLOCK_MONOTONIC is implemented, time_monotonic() might return 0 within 1 second after the system is started. If that's the case, we just default to 0 for now to avoid a crash (doesn't "hide" the system time, but it's only the uptime anyway in this case). Closes strongswan/strongswan#435. --- src/libcharon/network/receiver.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libcharon/network/receiver.c b/src/libcharon/network/receiver.c index b191ed8d6..ab520fea6 100644 --- a/src/libcharon/network/receiver.c +++ b/src/libcharon/network/receiver.c @@ -629,7 +629,7 @@ receiver_t *receiver_create() }, .esp_cb_mutex = mutex_create(MUTEX_TYPE_DEFAULT), .secret_switch = now, - .secret_offset = random() % now, + .secret_offset = now ? random() % now : 0, ); if (lib->settings->get_bool(lib->settings,