forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit74a1a36
committed
Fix JSON error reporting for many cases of erroneous string values.
The majority of error exit cases in json_lex_string() failed toset lex->token_terminator, causing problems for the error contextreporting code: it would see token_terminator less than token_startand do something more or less nuts. In v14 and up the end resultcould be as bad as a crash in report_json_context(). Olderversions accidentally avoided that fate; but all versions produceerror context lines that are far less useful than intended,because they'd stop at the end of the prior token instead ofcontinuing to where the actually-bad input is.To fix, invent some macros that make it less notationally painfulto do the right thing. Also add documentation about what thefunction is actually required to do; and in >= v14, add an assertionin report_json_context about token_terminator being sufficientlyfar advanced.Per report from Nikolay Shaplov. Back-patch to all supportedversions.Discussion:https://postgr.es/m/7332649.x5DLKWyVIX@thinkpad-pgpro1 parent5fd61bd commit74a1a36
File tree
4 files changed
+72
-54
lines changed- src
- backend/utils/adt
- common
- test/regress/expected
4 files changed
+72
-54
lines changedLines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
656 | 656 |
| |
657 | 657 |
| |
658 | 658 |
| |
| 659 | + | |
659 | 660 |
| |
660 | 661 |
| |
661 | 662 |
| |
|
Lines changed: 47 additions & 30 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
667 | 667 |
| |
668 | 668 |
| |
669 | 669 |
| |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
670 | 678 |
| |
671 | 679 |
| |
672 | 680 |
| |
| |||
675 | 683 |
| |
676 | 684 |
| |
677 | 685 |
| |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
678 | 699 |
| |
679 | 700 |
| |
680 | 701 |
| |
| |||
687 | 708 |
| |
688 | 709 |
| |
689 | 710 |
| |
690 |
| - | |
691 |
| - | |
692 |
| - | |
693 |
| - | |
| 711 | + | |
694 | 712 |
| |
695 | 713 |
| |
696 | 714 |
| |
697 | 715 |
| |
698 | 716 |
| |
699 | 717 |
| |
700 |
| - | |
701 |
| - | |
| 718 | + | |
702 | 719 |
| |
703 | 720 |
| |
704 | 721 |
| |
705 | 722 |
| |
706 | 723 |
| |
707 | 724 |
| |
708 | 725 |
| |
709 |
| - | |
710 |
| - | |
711 |
| - | |
712 |
| - | |
| 726 | + | |
713 | 727 |
| |
714 | 728 |
| |
715 | 729 |
| |
| |||
720 | 734 |
| |
721 | 735 |
| |
722 | 736 |
| |
723 |
| - | |
724 |
| - | |
725 |
| - | |
726 |
| - | |
| 737 | + | |
727 | 738 |
| |
728 | 739 |
| |
729 | 740 |
| |
730 | 741 |
| |
731 | 742 |
| |
732 | 743 |
| |
733 | 744 |
| |
734 |
| - | |
735 |
| - | |
736 |
| - | |
737 |
| - | |
| 745 | + | |
738 | 746 |
| |
739 | 747 |
| |
740 | 748 |
| |
| |||
744 | 752 |
| |
745 | 753 |
| |
746 | 754 |
| |
747 |
| - | |
| 755 | + | |
748 | 756 |
| |
749 | 757 |
| |
750 | 758 |
| |
751 | 759 |
| |
752 | 760 |
| |
753 | 761 |
| |
754 |
| - | |
| 762 | + | |
755 | 763 |
| |
756 | 764 |
| |
757 | 765 |
| |
758 | 766 |
| |
759 | 767 |
| |
760 |
| - | |
| 768 | + | |
761 | 769 |
| |
762 | 770 |
| |
763 | 771 |
| |
| |||
767 | 775 |
| |
768 | 776 |
| |
769 | 777 |
| |
770 |
| - | |
| 778 | + | |
771 | 779 |
| |
772 | 780 |
| |
773 | 781 |
| |
| |||
804 | 812 |
| |
805 | 813 |
| |
806 | 814 |
| |
807 |
| - | |
| 815 | + | |
808 | 816 |
| |
809 | 817 |
| |
810 | 818 |
| |
811 | 819 |
| |
812 | 820 |
| |
813 | 821 |
| |
814 |
| - | |
| 822 | + | |
815 | 823 |
| |
816 | 824 |
| |
817 | 825 |
| |
| |||
836 | 844 |
| |
837 | 845 |
| |
838 | 846 |
| |
839 |
| - | |
| 847 | + | |
| 848 | + | |
| 849 | + | |
| 850 | + | |
| 851 | + | |
| 852 | + | |
840 | 853 |
| |
841 |
| - | |
842 |
| - | |
| 854 | + | |
843 | 855 |
| |
844 | 856 |
| |
845 | 857 |
| |
| |||
852 | 864 |
| |
853 | 865 |
| |
854 | 866 |
| |
855 |
| - | |
856 |
| - | |
| 867 | + | |
857 | 868 |
| |
858 | 869 |
| |
859 | 870 |
| |
860 | 871 |
| |
861 | 872 |
| |
862 |
| - | |
| 873 | + | |
863 | 874 |
| |
864 | 875 |
| |
865 | 876 |
| |
866 | 877 |
| |
867 | 878 |
| |
868 | 879 |
| |
| 880 | + | |
| 881 | + | |
869 | 882 |
| |
| 883 | + | |
870 | 884 |
| |
871 | 885 |
| |
872 | 886 |
| |
873 | 887 |
| |
874 | 888 |
| |
| 889 | + | |
| 890 | + | |
| 891 | + | |
875 | 892 |
| |
876 | 893 |
| |
877 | 894 |
| |
|
Lines changed: 12 additions & 12 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
56 | 56 |
| |
57 | 57 |
| |
58 | 58 |
| |
59 |
| - | |
| 59 | + | |
60 | 60 |
| |
61 | 61 |
| |
62 | 62 |
| |
63 |
| - | |
| 63 | + | |
64 | 64 |
| |
65 | 65 |
| |
66 | 66 |
| |
67 |
| - | |
| 67 | + | |
68 | 68 |
| |
69 | 69 |
| |
70 | 70 |
| |
71 |
| - | |
| 71 | + | |
72 | 72 |
| |
73 | 73 |
| |
74 | 74 |
| |
| |||
121 | 121 |
| |
122 | 122 |
| |
123 | 123 |
| |
124 |
| - | |
| 124 | + | |
125 | 125 |
| |
126 | 126 |
| |
127 | 127 |
| |
| |||
159 | 159 |
| |
160 | 160 |
| |
161 | 161 |
| |
162 |
| - | |
| 162 | + | |
163 | 163 |
| |
164 | 164 |
| |
165 | 165 |
| |
| |||
180 | 180 |
| |
181 | 181 |
| |
182 | 182 |
| |
183 |
| - | |
| 183 | + | |
184 | 184 |
| |
185 | 185 |
| |
186 | 186 |
| |
187 | 187 |
| |
188 | 188 |
| |
189 |
| - | |
| 189 | + | |
190 | 190 |
| |
191 | 191 |
| |
192 | 192 |
| |
193 | 193 |
| |
194 | 194 |
| |
195 |
| - | |
| 195 | + | |
196 | 196 |
| |
197 | 197 |
| |
198 | 198 |
| |
199 | 199 |
| |
200 | 200 |
| |
201 |
| - | |
| 201 | + | |
202 | 202 |
| |
203 | 203 |
| |
204 | 204 |
| |
| |||
223 | 223 |
| |
224 | 224 |
| |
225 | 225 |
| |
226 |
| - | |
| 226 | + | |
227 | 227 |
| |
228 | 228 |
| |
229 | 229 |
| |
| |||
253 | 253 |
| |
254 | 254 |
| |
255 | 255 |
| |
256 |
| - | |
| 256 | + | |
257 | 257 |
| |
258 | 258 |
| |
259 | 259 |
| |
|
Lines changed: 12 additions & 12 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
52 | 52 |
| |
53 | 53 |
| |
54 | 54 |
| |
55 |
| - | |
| 55 | + | |
56 | 56 |
| |
57 | 57 |
| |
58 | 58 |
| |
59 |
| - | |
| 59 | + | |
60 | 60 |
| |
61 | 61 |
| |
62 | 62 |
| |
63 |
| - | |
| 63 | + | |
64 | 64 |
| |
65 | 65 |
| |
66 | 66 |
| |
67 |
| - | |
| 67 | + | |
68 | 68 |
| |
69 | 69 |
| |
70 | 70 |
| |
| |||
113 | 113 |
| |
114 | 114 |
| |
115 | 115 |
| |
116 |
| - | |
| 116 | + | |
117 | 117 |
| |
118 | 118 |
| |
119 | 119 |
| |
| |||
151 | 151 |
| |
152 | 152 |
| |
153 | 153 |
| |
154 |
| - | |
| 154 | + | |
155 | 155 |
| |
156 | 156 |
| |
157 | 157 |
| |
| |||
168 | 168 |
| |
169 | 169 |
| |
170 | 170 |
| |
171 |
| - | |
| 171 | + | |
172 | 172 |
| |
173 | 173 |
| |
174 | 174 |
| |
175 | 175 |
| |
176 | 176 |
| |
177 |
| - | |
| 177 | + | |
178 | 178 |
| |
179 | 179 |
| |
180 | 180 |
| |
181 | 181 |
| |
182 | 182 |
| |
183 |
| - | |
| 183 | + | |
184 | 184 |
| |
185 | 185 |
| |
186 | 186 |
| |
187 | 187 |
| |
188 | 188 |
| |
189 |
| - | |
| 189 | + | |
190 | 190 |
| |
191 | 191 |
| |
192 | 192 |
| |
| |||
209 | 209 |
| |
210 | 210 |
| |
211 | 211 |
| |
212 |
| - | |
| 212 | + | |
213 | 213 |
| |
214 | 214 |
| |
215 | 215 |
| |
| |||
237 | 237 |
| |
238 | 238 |
| |
239 | 239 |
| |
240 |
| - | |
| 240 | + | |
241 | 241 |
| |
242 | 242 |
| |
243 | 243 |
| |
|
0 commit comments
Comments
(0)