[ulib][musl] Fix restrict pointer aliasing violation in ualarm
Change-Id: Ia8ed03a6ebfa88b182b3dbd4a3533d41442660d3
diff --git a/third_party/ulib/musl/src/unistd/ualarm.c b/third_party/ulib/musl/src/unistd/ualarm.c
index b56e560..76ffa9c 100644
--- a/third_party/ulib/musl/src/unistd/ualarm.c
+++ b/third_party/ulib/musl/src/unistd/ualarm.c
@@ -3,7 +3,11 @@
#include <unistd.h>
unsigned ualarm(unsigned value, unsigned interval) {
- struct itimerval it = {.it_interval.tv_usec = interval, .it_value.tv_usec = value};
- setitimer(ITIMER_REAL, &it, &it);
- return it.it_value.tv_sec * 1000000 + it.it_value.tv_usec;
+ struct itimerval it = {
+ .it_interval.tv_usec = interval,
+ .it_value.tv_usec = value,
+ };
+ struct itimerval old = {};
+ setitimer(ITIMER_REAL, &it, &old);
+ return old.it_value.tv_sec * 1000000 + old.it_value.tv_usec;
}