COMMON: Forbid use of unsafe strcat and strcpy
This commit is contained in:
parent
6293c2b3c2
commit
9c04d72471
6 changed files with 39 additions and 2 deletions
|
@ -64,6 +64,16 @@
|
||||||
#define mkdir FAKE_mkdir
|
#define mkdir FAKE_mkdir
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !defined(FORBIDDEN_SYMBOL_ALLOW_ALL) && !defined(FORBIDDEN_SYMBOL_EXCEPTION_strcpy)
|
||||||
|
#undef strcpy
|
||||||
|
#define strcpy FAKE_strcpy
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(FORBIDDEN_SYMBOL_ALLOW_ALL) && !defined(FORBIDDEN_SYMBOL_EXCEPTION_strcat)
|
||||||
|
#undef strcat
|
||||||
|
#define strcat FAKE_strcat
|
||||||
|
#endif
|
||||||
|
|
||||||
// Fix compilation with MacPorts SDL 2
|
// Fix compilation with MacPorts SDL 2
|
||||||
// It needs various (usually forbidden) symbols from time.h
|
// It needs various (usually forbidden) symbols from time.h
|
||||||
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_time_h
|
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_time_h
|
||||||
|
@ -255,6 +265,16 @@
|
||||||
#define mkdir(a,b) FORBIDDEN_look_at_common_forbidden_h_for_more_info SYMBOL !%*
|
#define mkdir(a,b) FORBIDDEN_look_at_common_forbidden_h_for_more_info SYMBOL !%*
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !defined(FORBIDDEN_SYMBOL_ALLOW_ALL) && !defined(FORBIDDEN_SYMBOL_EXCEPTION_strcpy)
|
||||||
|
#undef strcpy
|
||||||
|
#define strcpy(a,b) FORBIDDEN_look_at_common_forbidden_h_for_more_info SYMBOL !%*
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(FORBIDDEN_SYMBOL_ALLOW_ALL) && !defined(FORBIDDEN_SYMBOL_EXCEPTION_strcat)
|
||||||
|
#undef strcat
|
||||||
|
#define strcat(a,b) FORBIDDEN_look_at_common_forbidden_h_for_more_info SYMBOL !%*
|
||||||
|
#endif
|
||||||
|
|
||||||
// re-forbid all those time.h symbols again (if they were forbidden)
|
// re-forbid all those time.h symbols again (if they were forbidden)
|
||||||
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_time_h
|
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_time_h
|
||||||
|
|
||||||
|
|
|
@ -527,6 +527,18 @@
|
||||||
#define srandom(a) FORBIDDEN_look_at_common_forbidden_h_for_more_info SYMBOL !%*
|
#define srandom(a) FORBIDDEN_look_at_common_forbidden_h_for_more_info SYMBOL !%*
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Use Common::strcat_s or Common::strlcat in common/str.h
|
||||||
|
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_strcat
|
||||||
|
#undef strcat
|
||||||
|
#define strcat(a,b) FORBIDDEN_look_at_common_forbidden_h_for_more_info SYMBOL !%*
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Use Common::strcpy_s or Common::strlcpy in common/str.h
|
||||||
|
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_strcpy
|
||||||
|
#undef strcpy
|
||||||
|
#define strcpy(a,b) FORBIDDEN_look_at_common_forbidden_h_for_more_info SYMBOL !%*
|
||||||
|
#endif
|
||||||
|
|
||||||
// Use Common:scumm_stricmp in common/str.h
|
// Use Common:scumm_stricmp in common/str.h
|
||||||
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_stricmp
|
#ifndef FORBIDDEN_SYMBOL_EXCEPTION_stricmp
|
||||||
#undef stricmp
|
#undef stricmp
|
||||||
|
|
|
@ -4,6 +4,9 @@
|
||||||
** See Copyright Notice in lua.h
|
** See Copyright Notice in lua.h
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define FORBIDDEN_SYMBOL_EXCEPTION_strcpy
|
||||||
|
#define FORBIDDEN_SYMBOL_EXCEPTION_strcat
|
||||||
|
|
||||||
#include "common/util.h"
|
#include "common/util.h"
|
||||||
|
|
||||||
#define lobject_c
|
#define lobject_c
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
** See Copyright Notice in lua.h
|
** See Copyright Notice in lua.h
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define FORBIDDEN_SYMBOL_EXCEPTION_strcpy
|
||||||
|
|
||||||
#include "common/util.h"
|
#include "common/util.h"
|
||||||
|
|
||||||
#define lstrlib_c
|
#define lstrlib_c
|
||||||
|
|
|
@ -1000,7 +1000,7 @@ char *scumm_strdup(const char *in) {
|
||||||
const size_t len = strlen(in) + 1;
|
const size_t len = strlen(in) + 1;
|
||||||
char *out = (char *)malloc(len);
|
char *out = (char *)malloc(len);
|
||||||
if (out) {
|
if (out) {
|
||||||
strcpy(out, in);
|
Common::strcpy_s(out, len, in);
|
||||||
}
|
}
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
|
@ -87,7 +87,7 @@ void NORETURN_PRE error(const char *s, ...) {
|
||||||
buf_output[STRINGBUFLEN - 3] = '\0';
|
buf_output[STRINGBUFLEN - 3] = '\0';
|
||||||
buf_output[STRINGBUFLEN - 2] = '\0';
|
buf_output[STRINGBUFLEN - 2] = '\0';
|
||||||
buf_output[STRINGBUFLEN - 1] = '\0';
|
buf_output[STRINGBUFLEN - 1] = '\0';
|
||||||
strcat(buf_output, "!\n");
|
Common::strcat_s(buf_output, "!\n");
|
||||||
|
|
||||||
if (g_system)
|
if (g_system)
|
||||||
g_system->logMessage(LogMessageType::kError, buf_output);
|
g_system->logMessage(LogMessageType::kError, buf_output);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue