Even safer datetime parsing

This commit is contained in:
Christophe Dumez 2010-05-01 18:07:56 +00:00
parent ed7ae32a69
commit 72cc1eb4d4

View file

@ -484,7 +484,12 @@ QString misc::magnetUriToHash(QString magnet_uri) {
QString misc::boostTimeToQString(const boost::optional<boost::posix_time::ptime> boostDate) { QString misc::boostTimeToQString(const boost::optional<boost::posix_time::ptime> boostDate) {
if(!boostDate || !boostDate.is_initialized() || boostDate->is_not_a_date_time()) return tr("Unknown"); if(!boostDate || !boostDate.is_initialized() || boostDate->is_not_a_date_time()) return tr("Unknown");
struct std::tm tm = boost::posix_time::to_tm(*boostDate); struct std::tm tm;
try {
tm = boost::posix_time::to_tm(*boostDate);
} catch(std::exception e) {
return tr("Unknown");
}
time_t t = mktime(&tm); time_t t = mktime(&tm);
if(t < 0) if(t < 0)
return tr("Unknown"); return tr("Unknown");