From 011aef54640e52b2feb4d6326cd7fd55cdead73e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= <beat-kueng@gmx.net> Date: Fri, 17 May 2019 11:12:06 +0200 Subject: [PATCH] px4_poll posix: fix wrap-around for large timeouts timeout is an int, so it wraps when the poll timeout is >2147ms. This happened in logger, resulting in poll never returning. --- src/lib/cdev/posix/cdev_platform.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/cdev/posix/cdev_platform.cpp b/src/lib/cdev/posix/cdev_platform.cpp index 7114e896b0..34dce561b4 100644 --- a/src/lib/cdev/posix/cdev_platform.cpp +++ b/src/lib/cdev/posix/cdev_platform.cpp @@ -377,7 +377,7 @@ extern "C" { // Calculate an absolute time in the future const unsigned billion = (1000 * 1000 * 1000); - uint64_t nsecs = ts.tv_nsec + (timeout * 1000 * 1000); + uint64_t nsecs = ts.tv_nsec + ((uint64_t)timeout * 1000 * 1000); ts.tv_sec += nsecs / billion; nsecs -= (nsecs / billion) * billion; ts.tv_nsec = nsecs; -- GitLab