blob: 23bc7cc0a7e8e110a71047837edaa1f794b3e6ba (
plain)
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
|
remove #defines to prevent use of discouraged external functions
Preventing the use of discouraged or 'insecure' external functions
through defines in an internal header is not a good solution. The
header is not guaranteed to be included universally which makes
overlooking bad use of said functions during review more likely.
There are cases were those functions either are the most straight
forward solution or even have to be used. Using malloc or free is
required if the allocation or release is done by other libraries.
https://github.com/FFmpeg/FFmpeg/commit/e96d90eed66a198566c409958432d282e1b03869
--- ./ffmpeg/libavutil/internal.h.orig
+++ ./ffmpeg/libavutil/internal.h
@@ -125,42 +125,6 @@
level = (level ^ mask) - mask;
#endif
-/* avoid usage of dangerous/inappropriate system functions */
-#undef malloc
-#define malloc please_use_av_malloc
-#undef free
-#define free please_use_av_free
-#undef realloc
-#define realloc please_use_av_realloc
-#undef time
-#define time time_is_forbidden_due_to_security_issues
-#undef rand
-#define rand rand_is_forbidden_due_to_state_trashing_use_av_lfg_get
-#undef srand
-#define srand srand_is_forbidden_due_to_state_trashing_use_av_lfg_init
-#undef random
-#define random random_is_forbidden_due_to_state_trashing_use_av_lfg_get
-#undef sprintf
-#define sprintf sprintf_is_forbidden_due_to_security_issues_use_snprintf
-#undef strcat
-#define strcat strcat_is_forbidden_due_to_security_issues_use_av_strlcat
-#undef strncpy
-#define strncpy strncpy_is_forbidden_due_to_security_issues_use_av_strlcpy
-#undef exit
-#define exit exit_is_forbidden
-#undef printf
-#define printf please_use_av_log_instead_of_printf
-#undef fprintf
-#define fprintf please_use_av_log_instead_of_fprintf
-#undef puts
-#define puts please_use_av_log_instead_of_puts
-#undef perror
-#define perror please_use_av_log_instead_of_perror
-#undef strcasecmp
-#define strcasecmp please_use_av_strcasecmp
-#undef strncasecmp
-#define strncasecmp please_use_av_strncasecmp
-
#define FF_ALLOC_OR_GOTO(ctx, p, size, label)\
{\
p = av_malloc(size);\
|