]> git.ipfire.org Git - people/ms/strongswan.git/commitdiff
receiver: Avoid division by 0 after system start if CLOCK_MONOTONIC is used
authorTobias Brunner <tobias@strongswan.org>
Tue, 8 Jun 2021 13:33:36 +0000 (15:33 +0200)
committerTobias Brunner <tobias@strongswan.org>
Mon, 14 Jun 2021 11:24:08 +0000 (13:24 +0200)
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

index b191ed8d6a84afc383f3eeb05b490083361b1188..ab520fea6121211870830eee1b76cbe4ba61339b 100644 (file)
@@ -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,