From 57f933d348110f9db38bb7c7336a017147d4d100 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Thu, 18 Dec 2014 15:50:39 +0100 Subject: [PATCH] CID603224: missing break in parsedate. Could lead to wrongly setting the TYPE_MINUTE flag for an invalid (>59) number of minutes. Harmless, as that flag is never used. For completeness, also set the flag for seconds (also never used). Fixes #11552. --- src/system/libroot/os/parsedate.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/system/libroot/os/parsedate.cpp b/src/system/libroot/os/parsedate.cpp index c5c24c68db..7c9f1c7ff3 100644 --- a/src/system/libroot/os/parsedate.cpp +++ b/src/system/libroot/os/parsedate.cpp @@ -1014,11 +1014,16 @@ parsedate_etc(const char* dateString, time_t now, int* _flags) dateMask.Set(TYPE_HOUR); break; case 'M': + if (element->value > 59) + goto next_format; + dateMask.Set(TYPE_MINUTE); + break; case 'S': if (element->value > 59) goto next_format; + dateMask.Set(TYPE_SECOND); break; case 'y': case 'Y':