Переглянути джерело

Fix segfault when time_t is 64bit on 32bit arch (#1666)

On some platforms, like with musl libc, time_t may be 64 bit even on
32bit platforms. Fix segfault by convert time_t to 64 bit and use 64bit
format modifier instead of assume time_t is %ld
Natanael Copa 5 роки тому
батько
коміт
2d0171e956
1 змінених файлів з 4 додано та 3 видалено
  1. 4 3
      src/ServerStat.cc

+ 4 - 3
src/ServerStat.cc

@@ -183,11 +183,12 @@ bool ServerStat::operator==(const ServerStat& serverStat) const
 std::string ServerStat::toString() const
 {
   return fmt("host=%s, protocol=%s, dl_speed=%d, sc_avg_speed=%d,"
-             " mc_avg_speed=%d, last_updated=%ld, counter=%d, status=%s",
+             " mc_avg_speed=%d, last_updated=%" PRId64
+             ", counter=%d, status=%s",
              getHostname().c_str(), getProtocol().c_str(), getDownloadSpeed(),
              getSingleConnectionAvgSpeed(), getMultiConnectionAvgSpeed(),
-             getLastUpdated().getTimeFromEpoch(), getCounter(),
-             STATUS_STRING[getStatus()]);
+             static_cast<int64_t>(getLastUpdated().getTimeFromEpoch()),
+             getCounter(), STATUS_STRING[getStatus()]);
 }
 
 } // namespace aria2