-----Original Message-----
From: crash-utility-bounces(a)redhat.com <crash-utility-bounces(a)redhat.com> On Behalf
Of Dave Wysochanski
Sent: Monday, August 17, 2020 4:20 AM
To: crash-utility(a)redhat.com
Subject: [Crash-utility] [PATCH v4] Fix "log" command when crash is started
with "--minimal" option
Commit c86250bce29f introduced the useful '-T' option to print the
log timestamp in human-readable form. However, this option does
not work when crash is invoked with '--minimal' mode, and if tried,
crash will spin at 100% and continuously crash at a divide by 0
because machdep->hz == 0.
Fix this by disallowing this option in minimal mode. In addition,
only calculate the logic to calculate kt->boot_date.tv_sec
when this option is enabled.
Fixes: c86250bce29f ("Introduction of the "log -T" option...")
Signed-off-by: Dave Wysochanski <dwysocha(a)redhat.com>
Reviewed-by: Wang Long <w(a)laoqinren.net>
Tested-by: Mathias Krause <minipli(a)grsecurity.net>
Reviewed-by: Lianbo Jiang <lijiang(a)redhat.com>
---
kernel.c | 21 ++++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)
diff --git a/kernel.c b/kernel.c
index 5ed6021..9aa1d4d 100644
--- a/kernel.c
+++ b/kernel.c
@@ -4939,13 +4939,20 @@ cmd_log(void)
if (argerrs)
cmd_usage(pc->curcmd, SYNOPSIS);
- if (kt->boot_date.tv_sec == 0) {
- ulonglong uptime_jiffies;
- ulong uptime_sec;
- get_uptime(NULL, &uptime_jiffies);
- uptime_sec = (uptime_jiffies)/(ulonglong)machdep->hz;
- kt->boot_date.tv_sec = kt->date.tv_sec - uptime_sec;
- kt->boot_date.tv_nsec = 0;
+ if (msg_flags & SHOW_LOG_CTIME) {
+ if (pc->flags & MINIMAL_MODE) {
+ error(WARNING, "log: option 'T' not available in minimal mode\n");
^^^^^
This extra "log: " is not needed:
crash> log -T
log: WARNING: log: option 'T' not available in minimal mode
Lianbo, would you remove it when applying? Otherwise,
Acked-by: Kazuhito Hagio <k-hagio-ab(a)nec.com>
Thanks,
Kazu
+ return;
+ }
+
+ if (kt->boot_date.tv_sec == 0) {
+ ulonglong uptime_jiffies;
+ ulong uptime_sec;
+ get_uptime(NULL, &uptime_jiffies);
+ uptime_sec = (uptime_jiffies)/(ulonglong)machdep->hz;
+ kt->boot_date.tv_sec = kt->date.tv_sec - uptime_sec;
+ kt->boot_date.tv_nsec = 0;
+ }
}
if (msg_flags & SHOW_LOG_AUDIT) {
--
2.27.0
--
Crash-utility mailing list
Crash-utility(a)redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility