From 752a9ec4b44198554b9f998ed6e4a837878fc49f Mon Sep 17 00:00:00 2001 From: Zdenek Kabelac Date: Mon, 20 Sep 2021 01:57:06 +0200 Subject: [PATCH] cov: make read buffer obviously zero ended Coverity doesn't get the idea from memset() here. --- lib/config/config.c | 2 +- tools/pvck.c | 5 ++--- tools/pvscan.c | 1 + 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/config/config.c b/lib/config/config.c index 25a87c983..aedbb2b1e 100644 --- a/lib/config/config.c +++ b/lib/config/config.c @@ -522,7 +522,7 @@ int config_file_read_fd(struct dm_config_tree *cft, struct device *dev, dev_io_r if (!(dev->flags & DEV_REGULAR) || size2) use_plain_read = 0; - if (!(buf = malloc(size + size2))) { + if (!(buf = zalloc(size + size2))) { log_error("Failed to allocate circular buffer."); return 0; } diff --git a/tools/pvck.c b/tools/pvck.c index 629e1feee..0d1bc1b17 100644 --- a/tools/pvck.c +++ b/tools/pvck.c @@ -2955,7 +2955,7 @@ static int _read_metadata_file(struct cmd_context *cmd, struct metadata_file *mf goto out; } - if (!(text_buf = zalloc(text_size + 1))) + if (!(text_buf = malloc(text_size + 1))) goto_out; rv = read(fd, text_buf, text_size); @@ -2964,8 +2964,7 @@ static int _read_metadata_file(struct cmd_context *cmd, struct metadata_file *mf free(text_buf); goto out; } - - text_size += 1; /* null terminating byte */ + text_buf[text_size++] = 0; /* null terminating byte */ if (close(fd)) stack; diff --git a/tools/pvscan.c b/tools/pvscan.c index ec33c9a9a..b19b74b3e 100644 --- a/tools/pvscan.c +++ b/tools/pvscan.c @@ -223,6 +223,7 @@ static int _online_pvid_file_read(char *path, int *major, int *minor, char *vgna log_warn("No info in %s", path); return 0; } + buf[rv] = 0; /* \0 terminated buffer */ if (sscanf(buf, "%d:%d", major, minor) != 2) { log_warn("No device numbers in %s", path);