- Add better protection against DoSing connecting users from connecting

- Have Com_sprintf return string length
- add STR_LEN macro for static strings
This commit is contained in:
Thilo Schulz 2011-07-07 16:07:58 +00:00
parent 53d89b6c10
commit 74e538ffcf
4 changed files with 37 additions and 18 deletions

View file

@ -919,7 +919,7 @@ int Q_CountChar(const char *string, char tocount)
return count;
}
void QDECL Com_sprintf(char *dest, int size, const char *fmt, ...)
int QDECL Com_sprintf(char *dest, int size, const char *fmt, ...)
{
int len;
va_list argptr;
@ -930,6 +930,8 @@ void QDECL Com_sprintf(char *dest, int size, const char *fmt, ...)
if(len >= size)
Com_Printf("Com_sprintf: Output length %d too short, require %d bytes.\n", size, len + 1);
return len;
}
/*

View file

@ -206,7 +206,7 @@ typedef int clipHandle_t;
#define MIN_QINT (-MAX_QINT-1)
#define ARRAY_LEN(x) (sizeof(x) / sizeof(*(x)))
#define STR_LEN(x) (ARRAY_LEN(x) - 1)
// angle indexes
#define PITCH 0 // up / down
@ -750,7 +750,7 @@ void Parse2DMatrix (char **buf_p, int y, int x, float *m);
void Parse3DMatrix (char **buf_p, int z, int y, int x, float *m);
int Com_HexStrToInt( const char *str );
void QDECL Com_sprintf (char *dest, int size, const char *fmt, ...) __attribute__ ((format (printf, 3, 4)));
int QDECL Com_sprintf (char *dest, int size, const char *fmt, ...) __attribute__ ((format (printf, 3, 4)));
char *Com_SkipTokens( char *s, int numTokens, char *sep );
char *Com_SkipCharset( char *s, char *sep );