It is possible for rtc_read_time() to fill struct rtc_time it returns
with invalid values, so we have to check for its return value before
using returned time.

Signed-off-by: Andrey Smirnov <andrew.smir...@gmail.com>
---
 commands/hwclock.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/commands/hwclock.c b/commands/hwclock.c
index 7633132..737df11 100644
--- a/commands/hwclock.c
+++ b/commands/hwclock.c
@@ -93,11 +93,12 @@ static int do_hwclock(int argc, char *argv[])
        char *env_name = NULL;
        int opt;
        int set = 0;
+       int ret;
        int ntp_to_hw = 0;
        char *ntpserver = NULL;

        while ((opt = getopt(argc, argv, "f:s:e:n:")) > 0) {
-               int ret;
+

                switch (opt) {
                case 'f':
@@ -151,7 +152,9 @@ static int do_hwclock(int argc, char *argv[])
                return rtc_set_time(r, &stm);
        }

-       rtc_read_time(r, &tm);
+       ret = rtc_read_time(r, &tm);
+       if (ret < 0)
+               return ret;

        if (env_name) {
                unsigned long time;
--
2.5.0

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to