[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox
Subject:    [PATCH v2] date: exit with failure when clock_settime fails
From:       Ladislav Michl <oss-lists () triops ! cz>
Date:       2023-09-18 9:11:48
Message-ID: ZQgUVOb/kq+GK6aX () lenoch
[Download RAW message or body]

From: Ladislav Michl <ladis@linux-mips.org>

Coreutils date behaves this way since 1998-12-11 as done in their git commit
a17cdb11731e ("(main): Arrange to exit unsuccessfully when stime fails.")

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
---
 CHANGES:
 -v2: better compatibily with coreutils, add explaining commit message

 coreutils/date.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/coreutils/date.c b/coreutils/date.c
index 3a89b6caf..09d5697dc 100644
--- a/coreutils/date.c
+++ b/coreutils/date.c
@@ -166,12 +166,13 @@ int date_main(int argc UNUSED_PARAM, char **argv)
 	struct tm tm_time;
 	char buf_fmt_dt2str[64];
 	unsigned opt;
-	int isofmt = -1;
 	char *date_str;
 	char *fmt_dt2str;
 	char *fmt_str2dt;
 	char *filename;
 	char *isofmt_arg = NULL;
+	int ret = EXIT_SUCCESS;
+	int isofmt = -1;
 
 	opt = getopt32long(argv, "^"
 			"Rs:ud:r:"
@@ -287,9 +288,12 @@ int date_main(int argc UNUSED_PARAM, char **argv)
 		ts.tv_sec = validate_tm_time(date_str, &tm_time);
 		ts.tv_nsec = 0;
 
-		/* if setting time, set it */
+		/* if setting time, set the system clock to the specified date,
+		 * then regardless of the success of that operation,
+		 * format and print that date. */
 		if ((opt & OPT_SET) && clock_settime(CLOCK_REALTIME, &ts) < 0) {
 			bb_simple_perror_msg("can't set date");
+			ret = EXIT_FAILURE;
 		}
 	}
 
@@ -383,5 +387,5 @@ int date_main(int argc UNUSED_PARAM, char **argv)
 	}
 	puts(date_buf);
 
-	return EXIT_SUCCESS;
+	return ret;
 }
-- 
2.39.2

_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic