Solaris 11 (possibly only 11.4) stat() can return st_[amc]tim.tv_nsec < 0, which leads to invalid values trying to set time on destination.
Gnulib has a stat_time_normalize() function in stat-time.h that might be useful to sanitise this.
Probably needed in both do_stat() and do_lstat(), though I only needed to bodge do_lstat() to get over my immediate problem.
#504