Check if an interval causes StackOverflow
authorInkyun Kil <inkyun.kil@samsung.com>
Tue, 17 Jul 2018 07:52:30 +0000 (16:52 +0900)
committerInkyun Kil <inkyun.kil@samsung.com>
Tue, 17 Jul 2018 08:30:20 +0000 (17:30 +0900)
Change-Id: Ia375181cb38e1716109db24321d9e1c853ad899a
Signed-off-by: Inkyun Kil <inkyun.kil@samsung.com>
alarm-manager.c

index 4d3224f..66e7fd0 100644 (file)
@@ -2643,7 +2643,7 @@ static long __get_proper_interval(long interval, int alarm_type)
                }
        }
 
-       while (maxInterval * 2 <= interval ||
+       while ((maxInterval * 2 <= interval && maxInterval < LONG_MAX / 2) ||
                        (alarm_type & ALARM_TYPE_INEXACT && maxInterval < MIN_INEXACT_INTERVAL))
                maxInterval *= 2;