use safe strings more
This commit is contained in:
parent
0ab896b84a
commit
b0e62198ba
|
|
@ -164,7 +164,7 @@ void SwapBSPFile( void ){
|
|||
{
|
||||
if ( doingBSP ){
|
||||
si = ShaderInfoForShader( bspShaders[ i ].shader );
|
||||
if ( si->remapShader && si->remapShader[ 0 ] ) {
|
||||
if ( !strEmptyOrNull( si->remapShader ) ) {
|
||||
strcpy( bspShaders[ i ].shader, si->remapShader );
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -835,7 +835,7 @@ for ( i = 0; i < brush->numSides; i++ )
|
|||
static void ConvertPatch( FILE *f, int num, bspDrawSurface_t *ds, vec3_t origin ){
|
||||
int x, y;
|
||||
bspShader_t *shader;
|
||||
char *texture;
|
||||
const char *texture;
|
||||
bspDrawVert_t *dv;
|
||||
vec3_t xyz;
|
||||
|
||||
|
|
|
|||
|
|
@ -116,6 +116,8 @@
|
|||
#define Q3MAP2_EXPERIMENTAL_SNAP_PLANE_FIX 1
|
||||
|
||||
/* general */
|
||||
// actual shader name length limit depends on game engine and name use manner (plain texture/custom shader)
|
||||
// now checking it for strlen() < MAX_QPATH (so it's null terminated), though this check may be not enough/too much, depending on the use case
|
||||
#define MAX_QPATH 64
|
||||
|
||||
#define MAX_IMAGES 512
|
||||
|
|
|
|||
|
|
@ -829,7 +829,6 @@ shaderInfo_t *ShaderInfoForShader( const char *shaderName ){
|
|||
int i;
|
||||
int deprecationDepth;
|
||||
shaderInfo_t *si;
|
||||
char shader[ MAX_QPATH ];
|
||||
|
||||
/* dummy check */
|
||||
if ( strEmptyOrNull( shaderName ) ) {
|
||||
|
|
@ -838,11 +837,7 @@ shaderInfo_t *ShaderInfoForShader( const char *shaderName ){
|
|||
}
|
||||
|
||||
/* strip off extension */
|
||||
// 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 );
|
||||
auto shader = String64()( PathExtensionless( shaderName ) );
|
||||
|
||||
/* search for it */
|
||||
deprecationDepth = 0;
|
||||
|
|
@ -853,12 +848,11 @@ shaderInfo_t *ShaderInfoForShader( const char *shaderName ){
|
|||
/* check if shader is deprecated */
|
||||
if ( deprecationDepth < MAX_SHADER_DEPRECATION_DEPTH && !strEmptyOrNull( si->deprecateShader ) ) {
|
||||
/* override name */
|
||||
strcpy( shader, si->deprecateShader );
|
||||
StripExtension( shader );
|
||||
shader( PathExtensionless( si->deprecateShader ) );
|
||||
/* increase deprecation depth */
|
||||
deprecationDepth++;
|
||||
if ( deprecationDepth == MAX_SHADER_DEPRECATION_DEPTH ) {
|
||||
Sys_Warning( "Max deprecation depth of %i is reached on shader '%s'\n", MAX_SHADER_DEPRECATION_DEPTH, shader );
|
||||
Sys_Warning( "Max deprecation depth of %i is reached on shader '%s'\n", MAX_SHADER_DEPRECATION_DEPTH, shader.c_str() );
|
||||
}
|
||||
/* search again from beginning */
|
||||
i = -1;
|
||||
|
|
@ -878,7 +872,7 @@ shaderInfo_t *ShaderInfoForShader( const char *shaderName ){
|
|||
|
||||
/* allocate a default shader */
|
||||
si = AllocShaderInfo();
|
||||
si->shader << shader;
|
||||
si->shader = shader;
|
||||
LoadShaderImages( si );
|
||||
FinishShader( si );
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user