Commit 708d099
keychain_wasm: fix dangling pointer in async JS callbacks
Guard navigator.credentials.get/.store Promise callbacks with an
isJobAlive() check against window.qtk_active_jobs before calling back
into C++. If the C++ job is destroyed while a Promise is in flight,
hide_bridge_form already removes the entry from the map, so the check
prevents access to the freed pointer.
Also drop the unnecessary null guards on the three EMSCRIPTEN_KEEPALIVE
callbacks; job is always `this` from scheduledStart() and cannot be null.1 parent 0ada1a7 commit 708d099
1 file changed
Lines changed: 9 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
| 22 | + | |
| 23 | + | |
26 | 24 | | |
27 | 25 | | |
28 | 26 | | |
29 | 27 | | |
30 | 28 | | |
31 | | - | |
32 | | - | |
| 29 | + | |
33 | 30 | | |
34 | 31 | | |
35 | 32 | | |
36 | 33 | | |
37 | 34 | | |
38 | | - | |
39 | | - | |
| 35 | + | |
40 | 36 | | |
41 | 37 | | |
42 | 38 | | |
| |||
196 | 192 | | |
197 | 193 | | |
198 | 194 | | |
| 195 | + | |
| 196 | + | |
199 | 197 | | |
200 | 198 | | |
201 | 199 | | |
| |||
208 | 206 | | |
209 | 207 | | |
210 | 208 | | |
211 | | - | |
| 209 | + | |
212 | 210 | | |
213 | 211 | | |
214 | 212 | | |
| |||
228 | 226 | | |
229 | 227 | | |
230 | 228 | | |
| 229 | + | |
| 230 | + | |
231 | 231 | | |
232 | 232 | | |
233 | 233 | | |
| |||
0 commit comments