getaddrinfo: add EAI_NODATA error code to distinguish NODATA vs NxDomain
[musl] / src / ipc / semctl.c
index ed98274..bbb97d7 100644 (file)
@@ -28,6 +28,14 @@ int semctl(int id, int num, int cmd, ...)
                arg = va_arg(ap, union semun);
                va_end(ap);
        }
+#if IPC_TIME64
+       struct semid_ds out, *orig;
+       if (cmd&IPC_TIME64) {
+               out = (struct semid_ds){0};
+               orig = arg.buf;
+               arg.buf = &out;
+       }
+#endif
 #ifdef SYSCALL_IPC_BROKEN_MODE
        struct semid_ds tmp;
        if (cmd == IPC_SET) {
@@ -51,6 +59,8 @@ int semctl(int id, int num, int cmd, ...)
 #endif
 #if IPC_TIME64
        if (r >= 0 && (cmd&IPC_TIME64)) {
+               arg.buf = orig;
+               *arg.buf = out;
                IPC_HILO(arg.buf, sem_otime);
                IPC_HILO(arg.buf, sem_ctime);
        }