Commit ba5825b0b7e0 ("ndctl/monitor: move common logging functions to
util/log.c")
have replaced monitor.log_file with monitor.ctx.log_file for
ndctl-monitor, but for cxl-monitor, it forgot to do such work.
So where user specifies its own logfile, a segmentation fault will be
trggered like below:
# build/cxl/cxl monitor -l ./monitor.log
Segmentation fault (core dumped)
Fixes: 299f69f974a6 ("cxl/monitor: add a new monitor command for CXL trace
events")
Reviewed-by: Dave Jiang <[email protected]>
Signed-off-by: Li Zhijian <[email protected]>
---
V4: add reviewed tag
V2: exchange order of previous patch1 and patch2 # Alison
a few commit log updated
---
cxl/monitor.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/cxl/monitor.c b/cxl/monitor.c
index d8245ed8d0e9..e83455b63d35 100644
--- a/cxl/monitor.c
+++ b/cxl/monitor.c
@@ -37,7 +37,6 @@ const char *default_log = "/var/log/cxl-monitor.log";
static struct monitor {
const char *log;
struct log_ctx ctx;
- FILE *log_file;
bool human;
bool verbose;
bool daemon;
@@ -192,8 +191,8 @@ int cmd_monitor(int argc, const char **argv, struct cxl_ctx
*ctx)
if (strncmp(log, "./standard", 10) == 0)
monitor.ctx.log_fn = log_standard;
else {
- monitor.log_file = fopen(log, "a+");
- if (!monitor.log_file) {
+ monitor.ctx.log_file = fopen(log, "a+");
+ if (!monitor.ctx.log_file) {
rc = -errno;
error("open %s failed: %d\n", log, rc);
goto out;
@@ -212,7 +211,7 @@ int cmd_monitor(int argc, const char **argv, struct cxl_ctx
*ctx)
rc = monitor_event(ctx);
out:
- if (monitor.log_file)
- fclose(monitor.log_file);
+ if (monitor.ctx.log_file)
+ fclose(monitor.ctx.log_file);
return rc;
}
--
2.29.2