mirror of
git://git.musl-libc.org/musl
synced 2025-03-06 20:48:29 +01:00
fix segfault in lutimes when tv argument is NULL
calling lutimes with tv=0 is valid if the application wants to set the timestamps to the current time. this commit makes it so the timespec struct is populated with values from tv only if tv != 0 and calls utimensat with times=0 if tv == 0.
This commit is contained in:
parent
67f774625e
commit
c5d118ebbc
1 changed files with 7 additions and 5 deletions
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue