From: Mike Schuchardt Date: Wed, 13 Dec 2017 16:45:36 +0000 (-0700) Subject: layers: Fix PV overflow X-Git-Tag: upstream/1.1.92~580 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=23047a58c740837f6d971da3e1956300199c3337;p=platform%2Fupstream%2FVulkan-Tools.git layers: Fix PV overflow Buffer pCreateInfo->size was being truncated to uint32_t before comparison with 0 Change-Id: Iba6b94f2a0df6514d1ffb79d38e6c0738ea44d71 --- diff --git a/layers/parameter_validation.h b/layers/parameter_validation.h index 6ef3de2..8acd34b 100644 --- a/layers/parameter_validation.h +++ b/layers/parameter_validation.h @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -153,9 +154,11 @@ bool ValidateGreaterThan(debug_report_data *report_data, const char *api_name, c bool skip_call = false; if (value <= lower_bound) { - skip_call |= - log_msg(report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, 1, LayerName, - "%s: parameter %s must be greater than %d", api_name, parameter_name.get_name().c_str(), lower_bound); + std::ostringstream ss; + ss << api_name << ": parameter " << parameter_name.get_name() << " is " << value << " but must be greater than " + << lower_bound; + skip_call |= log_msg(report_data, VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 0, __LINE__, 1, + LayerName, "%s", ss.str().c_str()); } return skip_call; diff --git a/layers/parameter_validation_utils.cpp b/layers/parameter_validation_utils.cpp index b299b02..7617826 100644 --- a/layers/parameter_validation_utils.cpp +++ b/layers/parameter_validation_utils.cpp @@ -587,7 +587,7 @@ bool pv_vkCreateBuffer(VkDevice device, const VkBufferCreateInfo *pCreateInfo, c if (pCreateInfo != nullptr) { // Buffer size must be greater than 0 (error 00663) skip |= - ValidateGreaterThan(report_data, "vkCreateBuffer", "pCreateInfo->size", static_cast(pCreateInfo->size), 0u); + ValidateGreaterThan(report_data, "vkCreateBuffer", "pCreateInfo->size", pCreateInfo->size, static_cast(0)); // Validation for parameters excluded from the generated validation code due to a 'noautovalidity' tag in vk.xml if (pCreateInfo->sharingMode == VK_SHARING_MODE_CONCURRENT) {