From 681a916348befbca41cbe5e3ae069517d66d1eb3 Mon Sep 17 00:00:00 2001 From: Eric Wasylishen Date: Thu, 7 Oct 2021 00:31:11 -0600 Subject: [PATCH] qbsp: wad.cc: zero out data after \0 in dmiptex_t.name This is just for consistency with the cleanup branch which is also doing this --- qbsp/wad.cc | 22 ++++++++++++++++++++++ testmaps/qbsp-vis.sha256sum | 6 +++--- testmaps/qbsp.sha256sum | 6 +++--- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/qbsp/wad.cc b/qbsp/wad.cc index be5e9a73..d7e1fa83 100644 --- a/qbsp/wad.cc +++ b/qbsp/wad.cc @@ -175,6 +175,22 @@ WADList_FindTexture(const char *name) return NULL; } +static void WAD_SanitizeName(dmiptex_t* miptex) +{ + bool reached_null = false; + + for (int i = 0; i < sizeof(miptex->name); ++i) { + if (!miptex->name[i]) { + reached_null = true; + } + + // fill the remainder of the buffer with 0 bytes + if (reached_null) { + miptex->name[i] = '\0'; + } + } +} + static int WAD_LoadLump(const wad_t &wad, const char *name, uint8_t *dest) { @@ -195,6 +211,8 @@ WAD_LoadLump(const wad_t &wad, const char *name, uint8_t *dest) size = fread(dest, 1, sizeof(dmiptex_t), wad.file); if (size != sizeof(dmiptex_t)) Error("Failure reading from file"); + + WAD_SanitizeName((dmiptex_t*)dest); for (i = 0; i < MIPLEVELS; i++) ((dmiptex_t*)dest)->offsets[i] = 0; return sizeof(dmiptex_t); @@ -206,6 +224,8 @@ WAD_LoadLump(const wad_t &wad, const char *name, uint8_t *dest) size = fread(data.data(), 1, lump.disksize, wad.file); if (size != lump.disksize) Error("Failure reading from file"); + + WAD_SanitizeName((dmiptex_t*)dest); auto out = (dmiptex_t *)dest; auto in = (dmiptex_t *)data.data(); *out = *in; @@ -236,6 +256,8 @@ WAD_LoadLump(const wad_t &wad, const char *name, uint8_t *dest) size = fread(dest, 1, lump.disksize, wad.file); if (size != lump.disksize) Error("Failure reading from file"); + + WAD_SanitizeName((dmiptex_t*)dest); } return lump.size; } diff --git a/testmaps/qbsp-vis.sha256sum b/testmaps/qbsp-vis.sha256sum index e0c0457d..05abf41f 100644 --- a/testmaps/qbsp-vis.sha256sum +++ b/testmaps/qbsp-vis.sha256sum @@ -1,5 +1,5 @@ -d826cb6697a05a349942df7cc016ef3c7a01dd1ad220a7555ec4b7c99ed50840 *qbsp_func_detail.bsp -8e28e1c2dbaf670e4b38e50ec79d4806b7c866a37c1bca492ffb6b554de2072d *qbsp_func_detail_illusionary_plus_water.bsp +415d75b92b48e753b3ffc462b9e002a6c4e659481e8cc7609b268d03d0985029 *qbsp_func_detail.bsp +c9524f3858d9df55f612fb4b75670434712c2ed58a37e8534bf48f82eb6f81db *qbsp_func_detail_illusionary_plus_water.bsp e6b67b2cc464e000896dc547b19b77074bbcb029fd9e39546a2a56da2eb74894 *e1m1-bsp29.bsp 9d15751394e7192c8f0fb5e9b832aca9c04bcf97213935e37680273cb90bcfe0 *e1m1-bsp2.bsp 97e0e9fa25ab257a0ea610964d821bee0cbd55dddd4c8fd60bffe9a11de1739d *e1m1-2psb.bsp @@ -9,4 +9,4 @@ cde34a66f76fc4dd7cdf36f43b68a7256f80f1083ef50822ef1b60484d4985ab *e1m1-hexen2-bs bd4ecbfb7ca9002fc54d6c42a54d120ec67e9638f7329a7d0465afcfeb30dc88 *e1m1-hlbsp.bsp 48fc09913eec1ea1c09edf651824b3fd63a55274d1b3f54e39aa537b93132959 *e1m1-bspxbrushes.bsp e5cd1c62ddc896d8e0363877df05ca41e305818c93044e7952738a99cfc5e5a1 *e1m1-bsp29-onlyents.bsp -e8a677558ea4d0e870ad2b3eae0150a20f1e06295a0089a966becd61401d53a5 *qbspfeatures.bsp +86e8990f4ba8d0fa5bb8f4acd89bdf321db2896019e26903fb5c321b3eed6b62 *qbspfeatures.bsp diff --git a/testmaps/qbsp.sha256sum b/testmaps/qbsp.sha256sum index 5eb38777..cb335440 100644 --- a/testmaps/qbsp.sha256sum +++ b/testmaps/qbsp.sha256sum @@ -1,5 +1,5 @@ -1a6d64c09916e89ca9be0f78f1382bb26758249a6ea37673a974f746a7ae73a6 *qbsp_func_detail.bsp -6224e51aa5d697f79bc98971964916fc8abea4b87d809bb1aa9cf618bdd26493 *qbsp_func_detail_illusionary_plus_water.bsp +6b27857f7fca00c0412998db914f19f1e0c1408dbbd8800230589a39c67b94bb *qbsp_func_detail.bsp +9c316cfa2587aba74925a96883bc5553490daf14ad3ed31a2669cfd7a53036a2 *qbsp_func_detail_illusionary_plus_water.bsp ff6481312cecce94f5702eef01e296d23b44cce0649a50a2c5ef88d18bd4d937 *e1m1-bsp29.bsp ed6e532713ac624d046514d2dac54bb0d039298bcd5440c8024b17182d912365 *e1m1-bsp2.bsp f5e6594ca62d9cb84463537d6c7fd688d9ed770820689e8ce116ebf4cd694e3c *e1m1-2psb.bsp @@ -9,7 +9,7 @@ f9ec3608af2116ee0feca5cfac41f2052ad8881a094e2a274419f6ed35b974fd *e1m1-hexen2.bs fe1ed71ea322fbdb4a94522410271afb53e8b11be95cd87d20622598bfd528e3 *e1m1-hlbsp.bsp a0c244963bdf845beedc875cf3594045657d7f242f720e045e0fa3a8b031962a *e1m1-bspxbrushes.bsp 62fe5d3425b50d0d8d2b0adf781426af4ee4716152d3029b07391f3aca81c712 *e1m1-bsp29-onlyents.bsp -f8d672603bdf91c08fc37d8df7f6d51fc42b3258e94229b91896986a9c452704 *qbspfeatures.bsp +e83e9017c63fe0211582dbfbc88bcdef9f7ed0bca080dfd9c9149ab76c67eabb *qbspfeatures.bsp abf3633d5a6d0e167ce9bacec476d3408c8240df5f3d72d14867cd201d4e3674 *qbsp_func_detail.prt c0995c6b92256fa048c1a755ebe7e07f5fae33cb64e3c53adc234380fe44f267 *qbsp_func_detail_illusionary_plus_water.prt 08349ab23c97120c41493d8fb00b9a6c41553aba64b1710ba11cc5bdfbe51e45 *e1m1-bsp29.prt