Commit 97c29ff
committed
gh-156939: Detect buffer overflow in PyBytesWriter in debug mode
Reserve one byte in PyBytesWriter used as a canary byte: set it to a
special value. PyBytesWriter_Finish() checks if the canary byte has
been overriden. Add a test on the feature.
Tests: only run the 3 "example" tests in BytesWriterTest. There is no
need to rerun them in ByteArrayWriterTest.1 parent aaae15c commit 97c29ff
4 files changed
Lines changed: 144 additions & 10 deletions
File tree
- Lib/test/test_capi
- Misc/NEWS.d/next/C_API
- Modules/_testcapi
- Objects
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
1 | 2 | | |
2 | 3 | | |
| 4 | + | |
3 | 5 | | |
4 | 6 | | |
5 | 7 | | |
| |||
378 | 380 | | |
379 | 381 | | |
380 | 382 | | |
381 | | - | |
382 | | - | |
383 | | - | |
384 | | - | |
385 | | - | |
386 | | - | |
387 | | - | |
388 | | - | |
389 | | - | |
390 | 383 | | |
391 | 384 | | |
392 | 385 | | |
| |||
424 | 417 | | |
425 | 418 | | |
426 | 419 | | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
427 | 448 | | |
428 | 449 | | |
429 | 450 | | |
| |||
Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
151 | 151 | | |
152 | 152 | | |
153 | 153 | | |
154 | | - | |
| 154 | + | |
155 | 155 | | |
156 | 156 | | |
157 | 157 | | |
| |||
353 | 353 | | |
354 | 354 | | |
355 | 355 | | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
356 | 388 | | |
357 | 389 | | |
358 | 390 | | |
359 | 391 | | |
360 | 392 | | |
361 | 393 | | |
| 394 | + | |
362 | 395 | | |
363 | 396 | | |
364 | 397 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3589 | 3589 | | |
3590 | 3590 | | |
3591 | 3591 | | |
| 3592 | + | |
| 3593 | + | |
| 3594 | + | |
| 3595 | + | |
3592 | 3596 | | |
3593 | 3597 | | |
3594 | 3598 | | |
| |||
3611 | 3615 | | |
3612 | 3616 | | |
3613 | 3617 | | |
| 3618 | + | |
| 3619 | + | |
| 3620 | + | |
| 3621 | + | |
| 3622 | + | |
| 3623 | + | |
| 3624 | + | |
| 3625 | + | |
| 3626 | + | |
| 3627 | + | |
| 3628 | + | |
| 3629 | + | |
| 3630 | + | |
| 3631 | + | |
| 3632 | + | |
| 3633 | + | |
| 3634 | + | |
| 3635 | + | |
| 3636 | + | |
| 3637 | + | |
| 3638 | + | |
| 3639 | + | |
| 3640 | + | |
| 3641 | + | |
| 3642 | + | |
| 3643 | + | |
| 3644 | + | |
| 3645 | + | |
| 3646 | + | |
| 3647 | + | |
| 3648 | + | |
| 3649 | + | |
| 3650 | + | |
| 3651 | + | |
| 3652 | + | |
| 3653 | + | |
| 3654 | + | |
| 3655 | + | |
| 3656 | + | |
| 3657 | + | |
| 3658 | + | |
| 3659 | + | |
| 3660 | + | |
3614 | 3661 | | |
3615 | 3662 | | |
3616 | 3663 | | |
| |||
3625 | 3672 | | |
3626 | 3673 | | |
3627 | 3674 | | |
| 3675 | + | |
| 3676 | + | |
| 3677 | + | |
| 3678 | + | |
| 3679 | + | |
| 3680 | + | |
| 3681 | + | |
| 3682 | + | |
| 3683 | + | |
| 3684 | + | |
| 3685 | + | |
3628 | 3686 | | |
3629 | 3687 | | |
3630 | 3688 | | |
| |||
3713 | 3771 | | |
3714 | 3772 | | |
3715 | 3773 | | |
| 3774 | + | |
3716 | 3775 | | |
3717 | 3776 | | |
| 3777 | + | |
3718 | 3778 | | |
| 3779 | + | |
3719 | 3780 | | |
3720 | 3781 | | |
3721 | 3782 | | |
| |||
3747 | 3808 | | |
3748 | 3809 | | |
3749 | 3810 | | |
| 3811 | + | |
| 3812 | + | |
| 3813 | + | |
| 3814 | + | |
| 3815 | + | |
| 3816 | + | |
| 3817 | + | |
| 3818 | + | |
| 3819 | + | |
| 3820 | + | |
| 3821 | + | |
3750 | 3822 | | |
3751 | 3823 | | |
3752 | 3824 | | |
| |||
3846 | 3918 | | |
3847 | 3919 | | |
3848 | 3920 | | |
| 3921 | + | |
| 3922 | + | |
| 3923 | + | |
3849 | 3924 | | |
3850 | 3925 | | |
3851 | 3926 | | |
| |||
3879 | 3954 | | |
3880 | 3955 | | |
3881 | 3956 | | |
| 3957 | + | |
| 3958 | + | |
| 3959 | + | |
3882 | 3960 | | |
3883 | 3961 | | |
3884 | 3962 | | |
| |||
0 commit comments