Blame SOURCES/kde-workspace-4.10.x-bz#1001708.patch

a59559
From 001d9cd69dfa6fe2a827d01e94727912c3483ae9 Mon Sep 17 00:00:00 2001
a59559
From: Martin Briza <mbriza@redhat.com>
a59559
Date: Mon, 7 Oct 2013 18:01:58 +0200
a59559
Subject: [PATCH] kcontrol/dateandtime: Check for valid return value of
a59559
 QDateTime::toTime_t()
a59559
a59559
---
a59559
 kcontrol/dateandtime/dtime.cpp  | 7 ++++++-
a59559
 kcontrol/dateandtime/helper.cpp | 6 +++++-
a59559
 2 files changed, 11 insertions(+), 2 deletions(-)
a59559
a59559
diff --git a/kcontrol/dateandtime/dtime.cpp b/kcontrol/dateandtime/dtime.cpp
a59559
index 518afe5..feb5799 100644
a59559
--- a/kcontrol/dateandtime/dtime.cpp
a59559
+++ b/kcontrol/dateandtime/dtime.cpp
a59559
@@ -252,7 +252,12 @@ void Dtime::save( QVariantMap& helperargs )
a59559
     kDebug() << "Set date " << dt;
a59559
 
a59559
     helperargs["date"] = true;
a59559
-    helperargs["newdate"] = QString::number(dt.toTime_t());
a59559
+    time_t newDate = dt.toTime_t();
a59559
+    if (newDate == (unsigned int) -1) { // toTime_t() error
a59559
+        helperargs["newdate"] = QString("Overflow");
a59559
+    } else {
a59559
+        helperargs["newdate"] = QString::number(newDate);
a59559
+    }
a59559
     helperargs["olddate"] = QString::number(::time(0));
a59559
   }
a59559
 
a59559
diff --git a/kcontrol/dateandtime/helper.cpp b/kcontrol/dateandtime/helper.cpp
a59559
index 9168db3..3e994e2 100644
a59559
--- a/kcontrol/dateandtime/helper.cpp
a59559
+++ b/kcontrol/dateandtime/helper.cpp
a59559
@@ -94,7 +94,11 @@ int ClockHelper::date( const QString& newdate, const QString& olddate )
a59559
 {
a59559
     struct timeval tv;
a59559
 
a59559
-    tv.tv_sec = newdate.toULong() - olddate.toULong() + time(0);
a59559
+    bool ok;
a59559
+    tv.tv_sec = newdate.toULong(&ok) - olddate.toULong() + time(0);
a59559
+    if (!ok) {
a59559
+        return DateError;
a59559
+    }
a59559
     tv.tv_usec = 0;
a59559
     if (settimeofday(&tv, 0)) {
a59559
         return DateError;
a59559
-- 
a59559
1.8.3.1
a59559