forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit63e0d61

Neil Conway
Adjust datetime parsing to be more robust. We now pass the length of the
working buffer into ParseDateTime() and reject too-long input there,rather than checking the length of the input string before callingParseDateTime(). The old method was bogus because ParseDateTime() can usea variable amount of working space, depending on the content of theinput string (e.g. how many fields need to be NUL terminated). This fixesa minor stack overrun -- I don't _think_ it's exploitable, although Iwon't claim to be an expert.Along the way, fix a bug reported by Mark Dilger: the working bufferallocated by interval_in() was too short, which resulted in rejectingsome perfectly valid interval input values. I added a regression test forthis fix.1 parent15e4d1e commit63e0d61
File tree
7 files changed
+86
-75
lines changed- src
- backend/utils/adt
- include/utils
- test/regress
- expected
- sql
7 files changed
+86
-75
lines changedLines changed: 10 additions & 16 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
8 | 8 |
| |
9 | 9 |
| |
10 | 10 |
| |
11 |
| - | |
| 11 | + | |
12 | 12 |
| |
13 | 13 |
| |
14 | 14 |
| |
| |||
65 | 65 |
| |
66 | 66 |
| |
67 | 67 |
| |
68 |
| - | |
| 68 | + | |
69 | 69 |
| |
70 |
| - | |
71 |
| - | |
72 |
| - | |
73 |
| - | |
| 70 | + | |
| 71 | + | |
74 | 72 |
| |
75 | 73 |
| |
76 | 74 |
| |
| |||
894 | 892 |
| |
895 | 893 |
| |
896 | 894 |
| |
897 |
| - | |
| 895 | + | |
898 | 896 |
| |
899 | 897 |
| |
900 | 898 |
| |
901 | 899 |
| |
902 |
| - | |
903 |
| - | |
904 |
| - | |
905 |
| - | |
| 900 | + | |
| 901 | + | |
906 | 902 |
| |
907 | 903 |
| |
908 | 904 |
| |
| |||
1733 | 1729 |
| |
1734 | 1730 |
| |
1735 | 1731 |
| |
1736 |
| - | |
| 1732 | + | |
1737 | 1733 |
| |
1738 | 1734 |
| |
1739 | 1735 |
| |
1740 | 1736 |
| |
1741 |
| - | |
1742 |
| - | |
1743 |
| - | |
1744 |
| - | |
| 1737 | + | |
| 1738 | + | |
1745 | 1739 |
| |
1746 | 1740 |
| |
1747 | 1741 |
| |
|
Lines changed: 47 additions & 30 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
8 | 8 |
| |
9 | 9 |
| |
10 | 10 |
| |
11 |
| - | |
| 11 | + | |
12 | 12 |
| |
13 | 13 |
| |
14 | 14 |
| |
| |||
699 | 699 |
| |
700 | 700 |
| |
701 | 701 |
| |
702 |
| - | |
703 | 702 |
| |
704 | 703 |
| |
705 | 704 |
| |
706 | 705 |
| |
707 | 706 |
| |
708 |
| - | |
709 |
| - | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
710 | 711 |
| |
711 | 712 |
| |
712 | 713 |
| |
713 | 714 |
| |
714 | 715 |
| |
715 |
| - | |
716 |
| - | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
717 | 719 |
| |
718 | 720 |
| |
719 | 721 |
| |
| |||
729 | 731 |
| |
730 | 732 |
| |
731 | 733 |
| |
732 |
| - | |
| 734 | + | |
733 | 735 |
| |
734 | 736 |
| |
735 | 737 |
| |
736 | 738 |
| |
737 |
| - | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
738 | 755 |
| |
739 | 756 |
| |
740 | 757 |
| |
| |||
749 | 766 |
| |
750 | 767 |
| |
751 | 768 |
| |
752 |
| - | |
| 769 | + | |
753 | 770 |
| |
754 | 771 |
| |
755 | 772 |
| |
756 | 773 |
| |
757 |
| - | |
| 774 | + | |
758 | 775 |
| |
759 |
| - | |
| 776 | + | |
760 | 777 |
| |
761 | 778 |
| |
762 | 779 |
| |
763 | 780 |
| |
764 | 781 |
| |
765 |
| - | |
| 782 | + | |
766 | 783 |
| |
767 | 784 |
| |
768 |
| - | |
| 785 | + | |
769 | 786 |
| |
770 | 787 |
| |
771 | 788 |
| |
772 | 789 |
| |
773 | 790 |
| |
774 | 791 |
| |
775 | 792 |
| |
776 |
| - | |
| 793 | + | |
777 | 794 |
| |
778 | 795 |
| |
779 | 796 |
| |
780 | 797 |
| |
781 | 798 |
| |
782 |
| - | |
| 799 | + | |
783 | 800 |
| |
784 | 801 |
| |
785 | 802 |
| |
| |||
788 | 805 |
| |
789 | 806 |
| |
790 | 807 |
| |
791 |
| - | |
| 808 | + | |
792 | 809 |
| |
793 |
| - | |
| 810 | + | |
794 | 811 |
| |
795 | 812 |
| |
796 | 813 |
| |
797 | 814 |
| |
798 | 815 |
| |
799 | 816 |
| |
800 |
| - | |
| 817 | + | |
801 | 818 |
| |
802 | 819 |
| |
803 | 820 |
| |
| |||
811 | 828 |
| |
812 | 829 |
| |
813 | 830 |
| |
814 |
| - | |
| 831 | + | |
815 | 832 |
| |
816 |
| - | |
| 833 | + | |
817 | 834 |
| |
818 | 835 |
| |
819 | 836 |
| |
| |||
825 | 842 |
| |
826 | 843 |
| |
827 | 844 |
| |
828 |
| - | |
| 845 | + | |
829 | 846 |
| |
830 |
| - | |
| 847 | + | |
831 | 848 |
| |
832 | 849 |
| |
833 | 850 |
| |
| |||
838 | 855 |
| |
839 | 856 |
| |
840 | 857 |
| |
841 |
| - | |
| 858 | + | |
842 | 859 |
| |
843 |
| - | |
| 860 | + | |
844 | 861 |
| |
845 | 862 |
| |
846 | 863 |
| |
847 | 864 |
| |
848 | 865 |
| |
849 |
| - | |
| 866 | + | |
850 | 867 |
| |
851 | 868 |
| |
852 | 869 |
| |
853 | 870 |
| |
854 | 871 |
| |
855 | 872 |
| |
856 | 873 |
| |
857 |
| - | |
| 874 | + | |
858 | 875 |
| |
859 | 876 |
| |
860 |
| - | |
| 877 | + | |
861 | 878 |
| |
862 | 879 |
| |
863 | 880 |
| |
864 | 881 |
| |
865 | 882 |
| |
866 |
| - | |
| 883 | + | |
867 | 884 |
| |
868 |
| - | |
| 885 | + | |
869 | 886 |
| |
870 | 887 |
| |
871 | 888 |
| |
| |||
882 | 899 |
| |
883 | 900 |
| |
884 | 901 |
| |
885 |
| - | |
| 902 | + | |
886 | 903 |
| |
887 | 904 |
| |
888 | 905 |
| |
|
Lines changed: 7 additions & 11 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
10 | 10 |
| |
11 | 11 |
| |
12 | 12 |
| |
13 |
| - | |
| 13 | + | |
14 | 14 |
| |
15 | 15 |
| |
16 | 16 |
| |
| |||
306 | 306 |
| |
307 | 307 |
| |
308 | 308 |
| |
309 |
| - | |
| 309 | + | |
310 | 310 |
| |
311 | 311 |
| |
312 | 312 |
| |
313 | 313 |
| |
314 |
| - | |
315 |
| - | |
316 |
| - | |
317 |
| - | |
| 314 | + | |
| 315 | + | |
318 | 316 |
| |
319 | 317 |
| |
320 | 318 |
| |
| |||
711 | 709 |
| |
712 | 710 |
| |
713 | 711 |
| |
714 |
| - | |
| 712 | + | |
715 | 713 |
| |
716 |
| - | |
717 |
| - | |
718 |
| - | |
719 |
| - | |
| 714 | + | |
| 715 | + | |
720 | 716 |
| |
721 | 717 |
| |
722 | 718 |
| |
|
Lines changed: 10 additions & 16 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
8 | 8 |
| |
9 | 9 |
| |
10 | 10 |
| |
11 |
| - | |
| 11 | + | |
12 | 12 |
| |
13 | 13 |
| |
14 | 14 |
| |
| |||
77 | 77 |
| |
78 | 78 |
| |
79 | 79 |
| |
80 |
| - | |
| 80 | + | |
81 | 81 |
| |
82 |
| - | |
83 |
| - | |
84 |
| - | |
85 |
| - | |
| 82 | + | |
| 83 | + | |
86 | 84 |
| |
87 | 85 |
| |
88 | 86 |
| |
| |||
317 | 315 |
| |
318 | 316 |
| |
319 | 317 |
| |
320 |
| - | |
| 318 | + | |
321 | 319 |
| |
322 |
| - | |
323 |
| - | |
324 |
| - | |
325 |
| - | |
| 320 | + | |
| 321 | + | |
326 | 322 |
| |
327 | 323 |
| |
328 | 324 |
| |
| |||
493 | 489 |
| |
494 | 490 |
| |
495 | 491 |
| |
496 |
| - | |
| 492 | + | |
497 | 493 |
| |
498 | 494 |
| |
499 | 495 |
| |
| |||
503 | 499 |
| |
504 | 500 |
| |
505 | 501 |
| |
506 |
| - | |
507 |
| - | |
508 |
| - | |
509 |
| - | |
| 502 | + | |
| 503 | + | |
510 | 504 |
| |
511 | 505 |
| |
512 | 506 |
| |
|
Lines changed: 2 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
9 | 9 |
| |
10 | 10 |
| |
11 | 11 |
| |
12 |
| - | |
| 12 | + | |
13 | 13 |
| |
14 | 14 |
| |
15 | 15 |
| |
| |||
276 | 276 |
| |
277 | 277 |
| |
278 | 278 |
| |
279 |
| - | |
| 279 | + | |
280 | 280 |
| |
281 | 281 |
| |
282 | 282 |
| |
|
0 commit comments
Comments
(0)