getservbyport_r: fix wrong result if getnameinfo fails with EAI_OVERFLOW
[musl] / src / legacy / lutimes.c
index 2e5502d..dd46592 100644 (file)
@@ -6,9 +6,11 @@
 int lutimes(const char *filename, const struct timeval tv[2])
 {
        struct timespec times[2];
-       times[0].tv_sec  = tv[0].tv_sec;
-       times[0].tv_nsec = tv[0].tv_usec * 1000;
-       times[1].tv_sec  = tv[1].tv_sec;
-       times[1].tv_nsec = tv[1].tv_usec * 1000;
-       return utimensat(AT_FDCWD, filename, times, AT_SYMLINK_NOFOLLOW);
+       if (tv) {
+               times[0].tv_sec  = tv[0].tv_sec;
+               times[0].tv_nsec = tv[0].tv_usec * 1000;
+               times[1].tv_sec  = tv[1].tv_sec;
+               times[1].tv_nsec = tv[1].tv_usec * 1000;
+       }
+       return utimensat(AT_FDCWD, filename, tv ? times : 0, AT_SYMLINK_NOFOLLOW);
 }