diff --git a/nvme-print-json.c b/nvme-print-json.c index d59f7e7449..d8b25faede 100644 --- a/nvme-print-json.c +++ b/nvme-print-json.c @@ -123,9 +123,9 @@ static void obj_add_result(struct json_object *o, const char *v, ...) va_start(ap, v); if (vasprintf(&value, v, ap) < 0) - value = alloc_error; + value = NULL; - obj_add_str(o, "Result", value); + obj_add_str(o, "Result", value ? value : alloc_error); va_end(ap); } @@ -139,9 +139,9 @@ static void obj_add_key(struct json_object *o, const char *k, const char *v, ... va_start(ap, v); if (vasprintf(&value, v, ap) < 0) - value = alloc_error; + value = NULL; - obj_add_str(o, k, value); + obj_add_str(o, k, value ? value : alloc_error); va_end(ap); } @@ -5357,9 +5357,9 @@ static void json_output_message(bool error, const char *msg, va_list ap) _cleanup_free_ char *value = NULL; if (vasprintf(&value, msg, ap) < 0) - value = alloc_error; + value = NULL; - obj_add_str(r, error ? "error" : "result", value); + obj_add_str(r, error ? "error" : "result", value ? value : alloc_error); obj_print(r); } @@ -5371,9 +5371,10 @@ static void json_output_perror(const char *msg, va_list ap) _cleanup_free_ char *error = NULL; if (vasprintf(&error, msg, ap) < 0) - error = alloc_error; + error = NULL; - obj_add_key(r, "error", "%s: %s", error, nvme_strerror(errno)); + obj_add_key(r, "error", "%s: %s", error ? error : alloc_error, + nvme_strerror(errno)); json_output_object(r); } diff --git a/nvme-print-stdout.c b/nvme-print-stdout.c index aa7964aab3..b446ebb7c3 100644 --- a/nvme-print-stdout.c +++ b/nvme-print-stdout.c @@ -6281,9 +6281,9 @@ static void stdout_perror(const char *msg, va_list ap) _cleanup_free_ char *error = NULL; if (vasprintf(&error, msg, ap) < 0) - error = alloc_error; + error = NULL; - perror(error); + perror(error ? error : alloc_error); } static void stdout_key_value(const char *key, const char *val, va_list ap) @@ -6293,7 +6293,7 @@ static void stdout_key_value(const char *key, const char *val, va_list ap) if (vasprintf(&value, val, ap) < 0) value = NULL; - printf("%s: %s\n", key, value ? value : "Could not allocate string"); + printf("%s: %s\n", key, value ? value : alloc_error); } static void stdout_discovery_log(struct nvmf_discovery_log *log, int numrec) diff --git a/plugins/ocp/ocp-print-json.c b/plugins/ocp/ocp-print-json.c index 1d873d9ca8..49227f744c 100644 --- a/plugins/ocp/ocp-print-json.c +++ b/plugins/ocp/ocp-print-json.c @@ -68,9 +68,9 @@ static void obj_add_result(struct json_object *o, const char *v, ...) va_start(ap, v); if (vasprintf(&value, v, ap) < 0) - value = alloc_error; + value = NULL; - obj_add_str(o, "Result", value); + obj_add_str(o, "Result", value ? value : alloc_error); va_end(ap); }