From ea705fb3453a94fb4fee6f3a5299c988d8e48b26 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Tue, 7 Nov 2006 02:33:10 +0000 Subject: r19601: Fix protection from invalid struct tm values. Backport from Samba4. Jeremy. (This used to be commit 02a0ac0bacafe91e4fa3ca0cae2f05a25215efbc) --- source3/lib/replace/timegm.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/source3/lib/replace/timegm.c b/source3/lib/replace/timegm.c index 8db9bb4e09..395c684e11 100644 --- a/source3/lib/replace/timegm.c +++ b/source3/lib/replace/timegm.c @@ -51,6 +51,16 @@ time_t rep_timegm(struct tm *tm) {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}}; time_t res = 0; unsigned i; + + if (tm->tm_mon > 12 || + tm->tm_mon < 0 || + tm->tm_mday > 31 || + tm->tm_min > 60 || + tm->tm_sec > 60 || + tm->tm_hour > 24) { + /* invalid tm structure */ + return 0; + } for (i = 70; i < tm->tm_year; ++i) res += is_leap(i) ? 366 : 365; -- cgit