Origin: https://git.kernel.org/pub/scm/libs/klibc/klibc.git/commit/?id=
a13b588a915d3a4498bf342d85524eb7dde71594
This was not correctly initializing the timespec array before passing it
on to utimensat.
Tested: Built cpio and extracted an image with `cpio -im` to preserve
mtime. The calls to utime now pass through the correct timestamps.
Signed-off-by: Benjamin Gwin <bgwin@google.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Gbp-Pq: Name klibc-fix-implementation-of-utimes.patch
struct timespec ts[2];
if (tvp) {
- ts->tv_sec = tvp->tv_sec;
- ts->tv_nsec = tvp->tv_usec * 1000;
+ ts[0].tv_sec = tvp[0].tv_sec;
+ ts[0].tv_nsec = tvp[0].tv_usec * 1000;
+ ts[1].tv_sec = tvp[1].tv_sec;
+ ts[1].tv_nsec = tvp[1].tv_usec * 1000;
}
return utimensat(AT_FDCWD, file, &ts[0], 0);