[PATCH 6/6] commands/hwclock: Check return value of rtc_read_time()

Andrey Smirnov andrew.smirnov at gmail.com
Wed Jan 6 22:17:35 PST 2016


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.smirnov at 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



More information about the barebox mailing list