[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;
 }