Commit 10f2446
committed
Message sizes: fix integer overflow in send path, clarify limits
Add k_cbMaxSteamNetworkingSocketsMessageSizeSend_Internal to accommodate
the P2PMessageHeader prepended by ISteamNetworkingMessages, so callers can
use the full advertised message size. Add GetEffectiveRecvMaxMessageSize()
on connections owned by a messages endpoint to match. Move size checks to
API entry points (SpewWarning + k_EResultInvalidParam) and demote the
innermost check to an Assert against the internal limit.
This addresses issue #382.
I don't believe there is a real security vuln here in the threat model
where the local process is trusted. A malicious remote peer cannot
trigger this overflow.1 parent 7b27b4a commit 10f2446
4 files changed
Lines changed: 81 additions & 38 deletions
File tree
- src/steamnetworkingsockets
- clientlib
Lines changed: 24 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
6 | 7 | | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
12 | 13 | | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | 14 | | |
23 | 15 | | |
24 | 16 | | |
| |||
29 | 21 | | |
30 | 22 | | |
31 | 23 | | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
32 | 36 | | |
33 | 37 | | |
34 | 38 | | |
| |||
347 | 351 | | |
348 | 352 | | |
349 | 353 | | |
350 | | - | |
| 354 | + | |
351 | 355 | | |
352 | 356 | | |
353 | 357 | | |
| |||
418 | 422 | | |
419 | 423 | | |
420 | 424 | | |
421 | | - | |
422 | | - | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
423 | 434 | | |
424 | 435 | | |
425 | 436 | | |
| |||
486 | 497 | | |
487 | 498 | | |
488 | 499 | | |
489 | | - | |
| 500 | + | |
490 | 501 | | |
491 | 502 | | |
492 | 503 | | |
| |||
Lines changed: 30 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
579 | 579 | | |
580 | 580 | | |
581 | 581 | | |
582 | | - | |
| 582 | + | |
583 | 583 | | |
584 | 584 | | |
585 | 585 | | |
| |||
1400 | 1400 | | |
1401 | 1401 | | |
1402 | 1402 | | |
1403 | | - | |
| 1403 | + | |
1404 | 1404 | | |
1405 | 1405 | | |
1406 | 1406 | | |
| |||
1599 | 1599 | | |
1600 | 1600 | | |
1601 | 1601 | | |
1602 | | - | |
| 1602 | + | |
1603 | 1603 | | |
1604 | 1604 | | |
1605 | 1605 | | |
| |||
2027 | 2027 | | |
2028 | 2028 | | |
2029 | 2029 | | |
| 2030 | + | |
| 2031 | + | |
| 2032 | + | |
| 2033 | + | |
| 2034 | + | |
| 2035 | + | |
| 2036 | + | |
2030 | 2037 | | |
2031 | 2038 | | |
2032 | 2039 | | |
| |||
2083 | 2090 | | |
2084 | 2091 | | |
2085 | 2092 | | |
| 2093 | + | |
| 2094 | + | |
| 2095 | + | |
| 2096 | + | |
| 2097 | + | |
| 2098 | + | |
| 2099 | + | |
| 2100 | + | |
2086 | 2101 | | |
2087 | 2102 | | |
2088 | 2103 | | |
2089 | 2104 | | |
2090 | 2105 | | |
2091 | 2106 | | |
2092 | 2107 | | |
2093 | | - | |
| 2108 | + | |
| 2109 | + | |
| 2110 | + | |
| 2111 | + | |
2094 | 2112 | | |
2095 | | - | |
| 2113 | + | |
2096 | 2114 | | |
2097 | 2115 | | |
2098 | 2116 | | |
| |||
2137 | 2155 | | |
2138 | 2156 | | |
2139 | 2157 | | |
2140 | | - | |
| 2158 | + | |
2141 | 2159 | | |
2142 | 2160 | | |
2143 | 2161 | | |
| |||
2204 | 2222 | | |
2205 | 2223 | | |
2206 | 2224 | | |
2207 | | - | |
| 2225 | + | |
2208 | 2226 | | |
2209 | 2227 | | |
2210 | 2228 | | |
| |||
2646 | 2664 | | |
2647 | 2665 | | |
2648 | 2666 | | |
2649 | | - | |
| 2667 | + | |
| 2668 | + | |
2650 | 2669 | | |
2651 | | - | |
2652 | | - | |
| 2670 | + | |
| 2671 | + | |
2653 | 2672 | | |
2654 | 2673 | | |
2655 | 2674 | | |
| |||
3702 | 3721 | | |
3703 | 3722 | | |
3704 | 3723 | | |
3705 | | - | |
| 3724 | + | |
3706 | 3725 | | |
3707 | 3726 | | |
3708 | 3727 | | |
| |||
Lines changed: 21 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
91 | 91 | | |
92 | 92 | | |
93 | 93 | | |
94 | | - | |
| 94 | + | |
95 | 95 | | |
96 | 96 | | |
97 | 97 | | |
| |||
353 | 353 | | |
354 | 354 | | |
355 | 355 | | |
356 | | - | |
| 356 | + | |
357 | 357 | | |
358 | 358 | | |
359 | 359 | | |
| |||
678 | 678 | | |
679 | 679 | | |
680 | 680 | | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
681 | 693 | | |
682 | 694 | | |
683 | 695 | | |
| |||
799 | 811 | | |
800 | 812 | | |
801 | 813 | | |
802 | | - | |
| 814 | + | |
803 | 815 | | |
804 | 816 | | |
805 | 817 | | |
| |||
972 | 984 | | |
973 | 985 | | |
974 | 986 | | |
975 | | - | |
976 | | - | |
977 | | - | |
978 | | - | |
979 | | - | |
| 987 | + | |
| 988 | + | |
| 989 | + | |
| 990 | + | |
| 991 | + | |
980 | 992 | | |
981 | 993 | | |
982 | 994 | | |
| |||
1116 | 1128 | | |
1117 | 1129 | | |
1118 | 1130 | | |
1119 | | - | |
| 1131 | + | |
1120 | 1132 | | |
1121 | 1133 | | |
1122 | 1134 | | |
| |||
Lines changed: 6 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
287 | 287 | | |
288 | 288 | | |
289 | 289 | | |
290 | | - | |
291 | | - | |
292 | | - | |
293 | | - | |
294 | 290 | | |
295 | 291 | | |
296 | 292 | | |
| |||
303 | 299 | | |
304 | 300 | | |
305 | 301 | | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
306 | 307 | | |
307 | 308 | | |
308 | 309 | | |
| |||
870 | 871 | | |
871 | 872 | | |
872 | 873 | | |
873 | | - | |
| 874 | + | |
874 | 875 | | |
875 | 876 | | |
876 | 877 | | |
| |||
0 commit comments