@@ -24,7 +24,7 @@ include the POSIX security model.
24
24
25
25
The design of WebAssembly promotes safe programs by eliminating dangerous
26
26
features from its execution semantics, while maintaining compatibility with
27
- programs written for [ C/C++] ( CandC++ .md) .
27
+ programs written for [ C/C++] ( CAndC%2B%2B .md) .
28
28
29
29
Modules must declare all accessible functions and their associated types
30
30
at load time, even when [ dynamic linking] ( DynamicLinking.md ) is used. This
@@ -88,15 +88,15 @@ common mitigations such as [data execution prevention][] (DEP) and
88
88
[ stack smashing protection] [ ] (SSP) are not needed by WebAssembly programs.
89
89
90
90
Another common class of memory safety errors involves unsafe pointer usage and
91
- [ undefined behavior] ( CandC++ .md#undefined-behavior) . This includes dereferencing
92
- pointers to unallocated memory (e.g. ` NULL ` ), or freed memory allocations. In
93
- WebAssembly, the semantics of pointers have been eliminated for function calls
94
- and variables with fixed static scope, allowing references to invalid indexes in
95
- any index space to trigger a validation error at load time, or at worst a trap
96
- at runtime. Accesses to linear memory are bounds-checked at the region level,
97
- potentially resulting in a trap at runtime. These memory region(s) are isolated
98
- from the internal memory of the runtime, and are set to zero by default unless
99
- otherwise initialized.
91
+ [ undefined behavior] ( CAndC%2B%2B .md#undefined-behavior) . This includes
92
+ dereferencing pointers to unallocated memory (e.g. ` NULL ` ), or freed memory
93
+ allocations. In WebAssembly, the semantics of pointers have been eliminated for
94
+ function calls and variables with fixed static scope, allowing references to
95
+ invalid indexes in any index space to trigger a validation error at load time,
96
+ or at worst a trap at runtime. Accesses to linear memory are bounds-checked at
97
+ the region level, potentially resulting in a trap at runtime. These memory
98
+ region(s) are isolated from the internal memory of the runtime, and are set to
99
+ zero by default unless otherwise initialized.
100
100
101
101
Nevertheless, other classes of bugs are not obviated by the semantics of
102
102
WebAssembly. Although attackers cannot perform direct code injection attacks,
0 commit comments