From: Markus Niebel <[email protected]>

Use rtc_month_days instead of oversimplified local logic.

Signed-off-by: Markus Niebel <[email protected]>
---
 cmd/date.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/cmd/date.c b/cmd/date.c
index d047872289c..158449ef0fc 100644
--- a/cmd/date.c
+++ b/cmd/date.c
@@ -167,12 +167,12 @@ int mk_date (const char *datestr, struct rtc_time *tmp)
                /* fall thru */
        case 12:                /* MMDDhhmmCCYY */
                if (cnvrt2 (datestr+0, &val) ||
-                   val > 12) {
+                   val > 12 || val < 1) {
                        break;
                }
                tmp->tm_mon  = val;
                if (cnvrt2 (datestr+2, &val) ||
-                   val > ((tmp->tm_mon==2) ? 29 : 31)) {
+                   val > rtc_month_days(tmp->tm_mon - 1, tmp->tm_year)) {
                        break;
                }
                tmp->tm_mday = val;
-- 
2.34.1

Reply via email to