From: Tokunori Ikegami Date: Mon, 17 Apr 2023 14:01:45 +0000 (+0900) Subject: nvme-print-json: Use vasprintf instead of vsnprintf to allocate string X-Git-Tag: v2.5~148 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=710290012eec7d8e067eb366c966212ab8b0e955;p=users%2Fsagi%2Fnvme-cli.git nvme-print-json: Use vasprintf instead of vsnprintf to allocate string Signed-off-by: Tokunori Ikegami --- diff --git a/nvme-print-json.c b/nvme-print-json.c index 1df36a5d..00135357 100644 --- a/nvme-print-json.c +++ b/nvme-print-json.c @@ -2860,21 +2860,15 @@ void json_output_status(int status) void json_output_error(const char *msg, va_list ap) { struct json_object *root = json_create_object(); - int len = ERROR_MSG_LEN; - char *error = (char *)malloc(ERROR_MSG_LEN); + char *error; - if (!error) - return; - - len = vsnprintf(error, len, msg, ap) + 1; - if (len > ERROR_MSG_LEN) { - error = (char *)realloc(error, len); - if (!error) - return; - vsnprintf(error, len, msg, ap); - } + if (vasprintf(&error, msg, ap) < 0) + error = NULL; - json_object_add_value_string(root, "error", error); + if (error) + json_object_add_value_string(root, "error", error); + else + json_object_add_value_string(root, "error", "Could not allocate string"); json_output_object(root);