aboutsummaryrefslogtreecommitdiff
path: root/mp/src/public/tier0/protected_things.h
diff options
context:
space:
mode:
Diffstat (limited to 'mp/src/public/tier0/protected_things.h')
-rw-r--r--mp/src/public/tier0/protected_things.h271
1 files changed, 271 insertions, 0 deletions
diff --git a/mp/src/public/tier0/protected_things.h b/mp/src/public/tier0/protected_things.h
new file mode 100644
index 00000000..160a0650
--- /dev/null
+++ b/mp/src/public/tier0/protected_things.h
@@ -0,0 +1,271 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef PROTECTED_THINGS_H
+#define PROTECTED_THINGS_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+
+// This header tries to prevent people from using potentially dangerous functions
+// (like the notorious non-null-terminating strncpy) and functions that will break
+// VCR mode (like time, input, registry, etc).
+//
+// This header should be included by ALL of our source code.
+
+// Eventually, ALL of these should be protected, but one man can only accomplish so much in
+// one day AND work on features too!
+#if defined( PROTECTED_STRINGS_ENABLE ) && !defined(DISABLE_PROTECTED_STRINGS)
+
+ #if defined( printf )
+ #undef printf
+ #endif
+ #define printf printf__HEY_YOU__USE_VSTDLIB
+
+ #if defined( wprintf )
+ #undef wprintf
+ #endif
+ #define wprintf wprintf__HEY_YOU__USE_VSTDLIB
+
+ #if defined( strcmp )
+ #undef strcmp
+ #endif
+ #define strcmp strcmp__HEY_YOU__USE_VSTDLIB
+
+ #if defined( wcscmp )
+ #undef wcscmp
+ #endif
+ #define wcscmp wcscmp__HEY_YOU__USE_VSTDLIB
+
+ #if defined( strncpy )
+ #undef strncpy
+ #endif
+ #define strncpy strncpy__HEY_YOU__USE_VSTDLIB
+
+ #if defined( wcsncpy )
+ #undef wcsncpy
+ #endif
+ #define wcsncpy wcsncpy__HEY_YOU__USE_VSTDLIB
+
+ #if defined( strlen )
+ #undef strlen
+ #endif
+ #define strlen strlen__HEY_YOU__USE_VSTDLIB
+
+ #if defined( wcslen )
+ #undef wcslen
+ #endif
+ #define wcslen wcslen__HEY_YOU__USE_VSTDLIB
+
+ #if defined( Q_strlen )
+ #undef Q_strlen
+ #endif
+ #define Q_strlen Q_strlen__HEY_YOU__USE_VSTDLIB
+
+ #if defined( _snprintf )
+ #undef _snprintf
+ #endif
+ #define _snprintf snprintf__HEY_YOU__USE_VSTDLIB
+
+ #if defined( _snwprintf )
+ #undef _snwprintf
+ #endif
+ #define _snwprintf snwprintf__HEY_YOU__USE_VSTDLIB
+
+ #if defined( sprintf )
+ #undef sprintf
+ #endif
+ #define sprintf sprintf__HEY_YOU__USE_VSTDLIB
+
+ #if defined( swprintf )
+ #undef swprintf
+ #endif
+ #define swprintf swprintf__HEY_YOU__USE_VSTDLIB
+
+ #if defined( vsprintf )
+ #undef vsprintf
+ #endif
+ #define vsprintf vsprintf__HEY_YOU__USE_VSTDLIB
+
+ #if defined( vswprintf )
+ #undef vswprintf
+ #endif
+ #define vswprintf vswprintf__HEY_YOU__USE_VSTDLIB
+
+ #if defined( _vsnprintf )
+ #undef _vsnprintf
+ #endif
+ #define _vsnprintf vsnprintf__HEY_YOU__USE_VSTDLIB
+
+ #if defined( _vsnwprintf )
+ #undef _vsnwprintf
+ #endif
+ #define _vsnwprintf vsnwprintf__HEY_YOU__USE_VSTDLIB
+
+ #if defined( strcat )
+ #undef strcat
+ #endif
+ #define strcat strcat__HEY_YOU__USE_VSTDLIB
+
+ #if defined( wcscat )
+ #undef wcscat
+ #endif
+ #define wcscat wcscat__HEY_YOU__USE_VSTDLIB
+
+ #if defined( strncat )
+ #undef strncat
+ #endif
+ #define strncat strncat__HEY_YOU__USE_VSTDLIB
+
+ #if defined( wcsncat )
+ #undef wcsncat
+ #endif
+ #define wcsncat wcsncat__HEY_YOU__USE_VSTDLIB
+
+#endif
+
+
+#if defined( PROTECTED_THINGS_ENABLE ) && !defined( _X360 ) && !defined(DISABLE_PROTECTED_THINGS)
+
+ #if defined( GetTickCount )
+ #undef GetTickCount
+ #endif
+ #define GetTickCount GetTickCount__USE_VCR_MODE
+
+
+ #if defined( timeGetTime )
+ #undef timeGetTime
+ #endif
+ #define timeGetTime timeGetTime__USE_VCR_MODE
+ #if defined( clock )
+ #undef clock
+ #endif
+ #define time time__USE_VCR_MODE
+
+
+ #if defined( recvfrom )
+ #undef recvfrom
+ #endif
+ #define recvfrom recvfrom__USE_VCR_MODE
+
+
+ #if defined( GetCursorPos )
+ #undef GetCursorPos
+ #endif
+ #define GetCursorPos GetCursorPos__USE_VCR_MODE
+
+
+ #if defined( ScreenToClient )
+ #undef ScreenToClient
+ #endif
+ #define ScreenToClient ScreenToClient__USE_VCR_MODE
+
+
+ #if defined( GetCommandLine )
+ #undef GetCommandLine
+ #endif
+ #define GetCommandLine GetCommandLine__USE_VCR_MODE
+
+
+ #if defined( RegOpenKeyEx )
+ #undef RegOpenKeyEx
+ #endif
+ #define RegOpenKeyEx RegOpenKeyEx__USE_VCR_MODE
+
+
+ #if defined( RegOpenKey )
+ #undef RegOpenKey
+ #endif
+ #define RegOpenKey RegOpenKey__USE_VCR_MODE
+
+
+ #if defined( RegSetValueEx )
+ #undef RegSetValueEx
+ #endif
+ #define RegSetValueEx RegSetValueEx__USE_VCR_MODE
+
+
+ #if defined( RegSetValue )
+ #undef RegSetValue
+ #endif
+ #define RegSetValue RegSetValue__USE_VCR_MODE
+
+
+ #if defined( RegQueryValueEx )
+ #undef RegQueryValueEx
+ #endif
+ #define RegQueryValueEx RegQueryValueEx__USE_VCR_MODE
+
+
+ #if defined( RegQueryValue )
+ #undef RegQueryValue
+ #endif
+ #define RegQueryValue RegQueryValue__USE_VCR_MODE
+
+
+ #if defined( RegCreateKeyEx )
+ #undef RegCreateKeyEx
+ #endif
+ #define RegCreateKeyEx RegCreateKeyEx__USE_VCR_MODE
+
+
+ #if defined( RegCreateKey )
+ #undef RegCreateKey
+ #endif
+ #define RegCreateKey RegCreateKey__USE_VCR_MODE
+
+
+ #if defined( RegCloseKey )
+ #undef RegCloseKey
+ #endif
+ #define RegCloseKey RegCloseKey__USE_VCR_MODE
+
+
+ #if defined( GetNumberOfConsoleInputEvents )
+ #undef GetNumberOfConsoleInputEvents
+ #endif
+ #define GetNumberOfConsoleInputEvents GetNumberOfConsoleInputEvents__USE_VCR_MODE
+
+
+ #if defined( ReadConsoleInput )
+ #undef ReadConsoleInput
+ #endif
+ #define ReadConsoleInput ReadConsoleInput__USE_VCR_MODE
+
+
+ #if defined( GetAsyncKeyState )
+ #undef GetAsyncKeyState
+ #endif
+ #define GetAsyncKeyState GetAsyncKeyState__USE_VCR_MODE
+
+
+ #if defined( GetKeyState )
+ #undef GetKeyState
+ #endif
+ #define GetKeyState GetKeyState__USE_VCR_MODE
+
+
+ #if defined( CreateThread )
+ #undef CreateThread
+ #endif
+ #define CreateThread CreateThread__USE_VCR_MODE
+
+ #if defined( WaitForSingleObject )
+ #undef WaitForSingleObject
+ #endif
+ #define WaitForSingleObject WaitForSingleObject__USE_VCR_MODE
+
+ #if defined( EnterCriticalSection )
+ #undef EnterCriticalSection
+ #endif
+ #define EnterCriticalSection EnterCriticalSection__USE_VCR_MODE
+
+#endif
+
+
+#endif // PROTECTED_THINGS_H