[lvm-devel] [PATCH 29/29] Check for NULL pointer
Zdenek Kabelac
zkabelac at redhat.com
Thu Nov 25 23:02:33 UTC 2010
Dne 25.11.2010 11:55, Zdenek Kabelac napsal(a):
> clangs is happier and check for non NULL options value.
> Report internal error in this case.
>
> Signed-off-by: Zdenek Kabelac <zkabelac at redhat.com>
> ---
> tools/reporter.c | 4 ++++
> 1 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/tools/reporter.c b/tools/reporter.c
> index 40d3c9a..16c19e2 100644
> --- a/tools/reporter.c
> +++ b/tools/reporter.c
> @@ -328,6 +328,10 @@ static int _report(struct cmd_context *cmd, int argc, char **argv,
> return EINVALID_CMD_LINE;
> }
> if (*opts == '+') {
> + if (!options) {
> + log_error(INTERNAL_ERROR "Missing options.");
> + return EINVALID_CMD_LINE;
> + }
> if (!(str = dm_pool_alloc(cmd->mem,
> strlen(options) + strlen(opts) + 1))) {
> log_error("options string allocation failed");
Ok - here is 'smarter' way how to avoid NULL 'options' path:
It's more or less assert - but since we are not using asserts.
As with current code 'default:' could never be reached - so it doesn't put any
extra check into the original code path.
diff --git a/tools/reporter.c b/tools/reporter.c
index 40d3c9a..358c404 100644
--- a/tools/reporter.c
+++ b/tools/reporter.c
@@ -318,6 +318,9 @@ static int _report(struct cmd_context *cmd, int argc, char
**argv,
"report/pvsegs_cols_verbose",
DEFAULT_PVSEGS_COLS_VERB);
break;
+ default:
+ log_error(INTERNAL_ERROR "Unknown report type.");
+ return ECMD_FAILED;
}
/* If -o supplied use it, else use default for report_type */
More information about the lvm-devel
mailing list