From 7b408d356094ab0ef0a07904a3ddf3832a8aa197 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Wed, 15 Nov 2017 15:43:24 +0100 Subject: Fix the nanosleep case of __assuan_usleep. * src/system-posix.c (__assuan_usleep): Handle full seconds. -- This function would have failed for any value >= 1000000 because the nsec field is limited to 999999999 and the function fails for larger values. Signed-off-by: Werner Koch --- src/system-posix.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src/system-posix.c') diff --git a/src/system-posix.c b/src/system-posix.c index 52376da..65d2c8c 100644 --- a/src/system-posix.c +++ b/src/system-posix.c @@ -68,9 +68,8 @@ __assuan_usleep (assuan_context_t ctx, unsigned int usec) struct timespec req; struct timespec rem; - req.tv_sec = 0; - req.tv_nsec = usec * 1000; - + req.tv_sec = usecs / 1000000; + req.tv_nsec = (usecs % 1000000) * 1000; while (nanosleep (&req, &rem) < 0 && errno == EINTR) req = rem; } -- cgit v1.2.3