Commit 2f1e70c
committed
gh-158446: Reject float format precision near INT_MAX
PyOS_double_to_string() now raises ValueError("precision too big") for
precisions above INT_MAX - 1024, matching what the format parsers already
do above INT_MAX. Buffer size computations in pystrtod.c and dtoa.c add a
few hundred to the precision using int / Py_ssize_t arithmetic and could
wrap for such values, leading to a crash or incorrect output.
Also harden _Py_dg_dtoa() and rv_alloc() so their size arithmetic stays in
range for any C caller.1 parent 115c297 commit 2f1e70c
4 files changed
Lines changed: 53 additions & 1 deletion
File tree
- Lib/test
- Misc/NEWS.d/next/Security
- Python
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
639 | 639 | | |
640 | 640 | | |
641 | 641 | | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
642 | 664 | | |
643 | 665 | | |
644 | 666 | | |
| |||
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2108 | 2108 | | |
2109 | 2109 | | |
2110 | 2110 | | |
2111 | | - | |
| 2111 | + | |
| 2112 | + | |
2112 | 2113 | | |
2113 | 2114 | | |
2114 | 2115 | | |
| |||
2372 | 2373 | | |
2373 | 2374 | | |
2374 | 2375 | | |
| 2376 | + | |
| 2377 | + | |
| 2378 | + | |
| 2379 | + | |
| 2380 | + | |
| 2381 | + | |
| 2382 | + | |
| 2383 | + | |
2375 | 2384 | | |
2376 | 2385 | | |
2377 | 2386 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
401 | 401 | | |
402 | 402 | | |
403 | 403 | | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
404 | 411 | | |
405 | 412 | | |
406 | 413 | | |
| |||
766 | 773 | | |
767 | 774 | | |
768 | 775 | | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
769 | 781 | | |
770 | 782 | | |
771 | 783 | | |
| |||
1227 | 1239 | | |
1228 | 1240 | | |
1229 | 1241 | | |
| 1242 | + | |
| 1243 | + | |
| 1244 | + | |
| 1245 | + | |
| 1246 | + | |
1230 | 1247 | | |
1231 | 1248 | | |
1232 | 1249 | | |
| |||
0 commit comments