From 1e14c263050ead4bc43871183dc3139e162f35f0 Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Tue, 24 Jan 2023 07:59:49 +0100 Subject: [PATCH] lib/m2: time: Fix segfault by allocating timeval struct. Suggested by Meghan Denny . * lib/m2/time.c (__tv): New global variable. (time): Use it to allocate timeval struct. --- lib/m2/time.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/m2/time.c b/lib/m2/time.c index 7f43cdad..b48f9d94 100644 --- a/lib/m2/time.c +++ b/lib/m2/time.c @@ -1,6 +1,6 @@ /* -*-comment-start: "//";comment-end:""-*- * GNU Mes --- Maxwell Equations of Software - * Copyright © 2018,2019,2022 Jan (janneke) Nieuwenhuizen + * Copyright © 2018,2019,2022,2023 Jan (janneke) Nieuwenhuizen * * This file is part of GNU Mes. * @@ -22,13 +22,16 @@ #include #include +char *__tv; + long time (long* result) { int r; - struct timeval tv; - struct timezone tz; - r = _sys_call2 (SYS_gettimeofday, tv, tz); + if (__tv == 0) + __tv = malloc (sizeof (struct timeval)); + struct timeval *tv = __tv; + r = _sys_call2 (SYS_gettimeofday, tv, 0); if (r != 0) return -1; if (result != 0)