PR28391, strip/objcopy --preserve-dates *.a: cannot set time
authorGleb Fotengauer-Malinovskiy <glebfm@altlinux.org>
Tue, 28 Sep 2021 10:41:26 +0000 (20:11 +0930)
committerAlan Modra <amodra@gmail.com>
Tue, 28 Sep 2021 10:48:48 +0000 (20:18 +0930)
commit0d62064867c74286360e821b75ef6799bedc4b34
treebcee02b228cfb5569b40045b347651fa15f8822b
parentcee4c731af1e68814548ff00e4e7ecaa8ac07790
PR28391, strip/objcopy --preserve-dates *.a: cannot set time

After commit 985e0264516 copy_archive function began to pass invalid
values to the utimensat(2) function when it tries to preserve
timestamps in ar archives.  This happens because the bfd_stat_arch_elt
implementation for ar archives fills only the st_mtim.tv_sec part of
the st_mtim timespec structure, but leaves the st_mtim.tv_nsec part
and the whole st_atim timespec untouched leaving them uninitialized

PR 28391
* ar.c (extract_file): Clear buf for preserve_dates.
* objcopy.c (copy_archive): Likewise.
binutils/ar.c
binutils/objcopy.c