From 15e8ceeaa44f06d02c2c7e0ed7163ec000fbc8b7 Mon Sep 17 00:00:00 2001 From: Kp Date: Mon, 22 Aug 2022 01:24:49 +0000 Subject: [PATCH] Use std::span to bound read_model_file valid bytes --- similar/main/polyobj.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/similar/main/polyobj.cpp b/similar/main/polyobj.cpp index f663cf5ab..dc7ba06af 100644 --- a/similar/main/polyobj.cpp +++ b/similar/main/polyobj.cpp @@ -159,16 +159,15 @@ static polymodel *read_model_file(polymodel *pm,const char *filename,robot_info { short version; int len, next_chunk; - ubyte model_buf[MODEL_BUF_SIZE]; auto &&[ifile, physfserr] = PHYSFSX_openReadBuffered(filename); if (!ifile) Error("Failed to open file <%s>: %s", filename, PHYSFS_getErrorByCode(physfserr)); - Assert(PHYSFS_fileLength(ifile) <= MODEL_BUF_SIZE); - Pof_addr = 0; - Pof_file_end = PHYSFS_read(ifile, model_buf, 1, PHYSFS_fileLength(ifile)); + std::array model_storage; + Pof_file_end = PHYSFS_read(ifile, model_storage.data(), 1, model_storage.size()); + const std::span model_buf{model_storage.data(), Pof_file_end}; ifile.reset(); const int model_id = pof_read_int(model_buf);