blob: 8cbfa929c74b2e73a8e5c543382849c10a211b34 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
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
|