From d9bad45a3de83906f2bf90053c21211b7052411d Mon Sep 17 00:00:00 2001 From: Garux Date: Thu, 9 Jan 2020 20:30:21 +0300 Subject: [PATCH] emit error on shader name string overflow in ShaderInfoForShader instead of silent truncation 202a05461fb7adbf486ba7ed89c082af3d3e7d96 --- tools/quake3/q3map2/shaders.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/quake3/q3map2/shaders.c b/tools/quake3/q3map2/shaders.c index 2567878c..1d57a20c 100644 --- a/tools/quake3/q3map2/shaders.c +++ b/tools/quake3/q3map2/shaders.c @@ -837,8 +837,10 @@ shaderInfo_t *ShaderInfoForShader( const char *shaderName ){ } /* strip off extension */ - strncpy( shader, shaderName, MAX_QPATH - 1 ); - shader[MAX_QPATH - 1] = '\0'; + // actual shader name length limit depends on game engine and name use manner (plain texture/custom shader) + // so this check may be not enough/too much, depending on the use case + if( strcpyQ( shader, shaderName, MAX_QPATH ) >= MAX_QPATH ) + Error( "Shader name too long: %s", shaderName ); StripExtension( shader ); /* search for it */