From d6848fffead69cdde8f7cab96b78775cc1a4e7cf Mon Sep 17 00:00:00 2001 From: bailwillharr Date: Mon, 31 Jul 2023 22:55:06 +0100 Subject: [PATCH] Fix string overrun error --- src/gfx_device_vulkan.cpp | 2 ++ src/scene.cpp | 2 +- src/util/files.cpp | 5 ++++- test/src/camera_controller.cpp | 6 ------ 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/gfx_device_vulkan.cpp b/src/gfx_device_vulkan.cpp index 8107cd8..2db08ce 100644 --- a/src/gfx_device_vulkan.cpp +++ b/src/gfx_device_vulkan.cpp @@ -870,6 +870,8 @@ gfx::Pipeline* GFXDevice::CreatePipeline(const gfx::PipelineInfo& info) { auto vertShaderCode = util::ReadTextFile(info.vert_shader_path); auto fragShaderCode = util::ReadTextFile(info.frag_shader_path); + LOG_INFO("vert shader vector size: {}", vertShaderCode->size()); + VkShaderModule vertShaderModule = compileShader(pimpl->device.device, shaderc_vertex_shader, vertShaderCode->data(), info.vert_shader_path); diff --git a/src/scene.cpp b/src/scene.cpp index 1e3aac3..2ed0900 100644 --- a/src/scene.cpp +++ b/src/scene.cpp @@ -39,7 +39,7 @@ uint32_t Scene::CreateEntity(const std::string& tag, uint32_t parent, auto t = AddComponent(id); - t->position = {0.0f, 0.0f, 0.0f}; + t->position = pos; t->rotation = {}; t->scale = {1.0f, 1.0f, 1.0f}; diff --git a/src/util/files.cpp b/src/util/files.cpp index 6722f6f..473e3d2 100644 --- a/src/util/files.cpp +++ b/src/util/files.cpp @@ -13,7 +13,7 @@ std::unique_ptr> ReadTextFile(const std::string& path) { throw std::runtime_error("Unable to open file " + path); } - auto buffer = std::make_unique>(file.tellg()); + auto buffer = std::make_unique>(static_cast(file.tellg()) + 1); file.seekg(0); @@ -27,6 +27,9 @@ std::unique_ptr> ReadTextFile(const std::string& path) { ++i; } + // append zero byte + buffer->data()[buffer->size()] = '\0'; + file.close(); return buffer; diff --git a/test/src/camera_controller.cpp b/test/src/camera_controller.cpp index b6458a0..6f1e3fe 100644 --- a/test/src/camera_controller.cpp +++ b/test/src/camera_controller.cpp @@ -30,12 +30,6 @@ void CameraControllerSystem::OnUpdate(float ts) { const float dt = ts; - constexpr float G = 9.8f; - - glm::vec3 dir = - glm::normalize(glm::rotateY(glm::vec3{1.0f, 0.0f, 0.0f}, c->yaw) + - glm::rotateY(glm::vec3{0.0f, 0.0f, 1.0f}, c->yaw)); - // in metres per second float speed = c->kWalkSpeed; if (scene_->app()->input_manager()->GetButton("sprint")) speed *= 10.0f;