diff options
author | Kyrre Sjobak <kyrre.ness.sjoebaek@cern.ch> | 2017-01-26 14:36:56 +0100 |
---|---|---|
committer | Kyrre Sjobak <kyrre.ness.sjoebaek@cern.ch> | 2017-01-26 14:36:56 +0100 |
commit | fed432c5ffea35b35d7d069e7cab8c7e10ea5f91 (patch) | |
tree | 0c2ef15d9c613d7d22e2c5020a4b3ff114b22219 /libarchive/archive_write_set_format_iso9660.c | |
parent | b51e595a6ae85e8da4093a0de0d773bfd7d3906e (diff) | |
download | libarchive-fed432c5ffea35b35d7d069e7cab8c7e10ea5f91.tar.gz |
Correctly convert 32-bit time_t to __time64_t
Diffstat (limited to 'libarchive/archive_write_set_format_iso9660.c')
-rw-r--r-- | libarchive/archive_write_set_format_iso9660.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libarchive/archive_write_set_format_iso9660.c b/libarchive/archive_write_set_format_iso9660.c index 1d1f04e0..95c7361a 100644 --- a/libarchive/archive_write_set_format_iso9660.c +++ b/libarchive/archive_write_set_format_iso9660.c @@ -2524,7 +2524,8 @@ get_tmfromtime(struct tm *tm, time_t *t) tzset(); localtime_r(t, tm); #elif HAVE__LOCALTIME64_S - _localtime64_s(tm, t); + __time64_t tmp_t = (__time64_t) *t; //time_t may be shorter than 64 bits + _localtime64_s(tm, &tmp_t); #else memcpy(tm, localtime(t), sizeof(*tm)); #endif @@ -4073,7 +4074,8 @@ write_information_block(struct archive_write *a) memset(info.s, 0, info_size); opt = 0; #if defined(HAVE__CTIME64_S) - _ctime64_s(buf, sizeof(buf), &(iso9660->birth_time)); + __time64_t iso9660_birth_time_tmp = (__time64_t) iso9660->birth_time; //time_t may be shorter than 64 bits + _ctime64_s(buf, sizeof(buf), &(iso9660_birth_time_tmp)); #elif defined(HAVE_CTIME_R) ctime_r(&(iso9660->birth_time), buf); #else |