>From a0693591d59d5cfc5185a1197d2adba7bc7e6e03 Mon Sep 17 00:00:00 2001
From: Patryk Kaczmarek <patryk.k@samsung.com>
Date: Thu, 6 Sep 2012 12:09:52 +0200
Subject: [PATCH] Protection for giving below zero values

Change-Id: Id5a0b20d633c79e64b5ac961c77809d96c9156c4
---
 trunk/ecore/src/lib/ecore/ecore_poll.c  |    7 +++++++
 trunk/ecore/src/lib/ecore/ecore_timer.c |   14 +++++++++++---
 2 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/trunk/ecore/src/lib/ecore/ecore_poll.c b/trunk/ecore/src/lib/ecore/ecore_poll.c
index 384ee68..089212e 100644
--- a/trunk/ecore/src/lib/ecore/ecore_poll.c
+++ b/trunk/ecore/src/lib/ecore/ecore_poll.c
@@ -194,6 +194,13 @@ ecore_poller_poll_interval_set(Ecore_Poller_Type type __UNUSED__,
                                double            poll_time)
 {
    EINA_MAIN_LOOP_CHECK_RETURN;
+
+   if (poll_time < 0.0)
+     {
+        ERR("Poll time %f less than zero, ignored", poll_time);
+        return;
+     }
+
    poll_interval = poll_time;
    _ecore_poller_next_tick_eval();
 }
diff --git a/trunk/ecore/src/lib/ecore/ecore_timer.c b/trunk/ecore/src/lib/ecore/ecore_timer.c
index b5b6e6d..bb4b50f 100644
--- a/trunk/ecore/src/lib/ecore/ecore_timer.c
+++ b/trunk/ecore/src/lib/ecore/ecore_timer.c
@@ -102,16 +102,17 @@ EAPI void
 ecore_timer_precision_set(double value)
 {
    EINA_MAIN_LOOP_CHECK_RETURN;
-   _ecore_lock();
 
    if (value < 0.0)
      {
         ERR("Precision %f less than zero, ignored", value);
-        goto unlock;
+        return;
      }
+
+   _ecore_lock();
+
    precision = value;
 
-unlock:
    _ecore_unlock();
 }
 
@@ -231,6 +232,13 @@ ecore_timer_interval_set(Ecore_Timer *timer,
                          double       in)
 {
    EINA_MAIN_LOOP_CHECK_RETURN;
+
+   if (in < 0.0)
+     {
+        ERR("Interval %f less than zero, ignored", in);
+        return;
+     }
+
    _ecore_lock();
 
    if (!ECORE_MAGIC_CHECK(timer, ECORE_MAGIC_TIMER))
-- 
1.7.6.3

