forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit0ee9d68
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 parent096e708 commit0ee9d68
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 | |
---|---|---|---|
| |||
675 | 675 |
| |
676 | 676 |
| |
677 | 677 |
| |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
678 | 686 |
| |
679 | 687 |
| |
680 | 688 |
| |
| |||
683 | 691 |
| |
684 | 692 |
| |
685 | 693 |
| |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
686 | 707 |
| |
687 | 708 |
| |
688 | 709 |
| |
| |||
695 | 716 |
| |
696 | 717 |
| |
697 | 718 |
| |
698 |
| - | |
699 |
| - | |
700 |
| - | |
701 |
| - | |
| 719 | + | |
702 | 720 |
| |
703 | 721 |
| |
704 | 722 |
| |
705 | 723 |
| |
706 | 724 |
| |
707 | 725 |
| |
708 |
| - | |
709 |
| - | |
| 726 | + | |
710 | 727 |
| |
711 | 728 |
| |
712 | 729 |
| |
713 | 730 |
| |
714 | 731 |
| |
715 | 732 |
| |
716 | 733 |
| |
717 |
| - | |
718 |
| - | |
719 |
| - | |
720 |
| - | |
| 734 | + | |
721 | 735 |
| |
722 | 736 |
| |
723 | 737 |
| |
| |||
728 | 742 |
| |
729 | 743 |
| |
730 | 744 |
| |
731 |
| - | |
732 |
| - | |
733 |
| - | |
734 |
| - | |
| 745 | + | |
735 | 746 |
| |
736 | 747 |
| |
737 | 748 |
| |
738 | 749 |
| |
739 | 750 |
| |
740 | 751 |
| |
741 | 752 |
| |
742 |
| - | |
743 |
| - | |
744 |
| - | |
745 |
| - | |
| 753 | + | |
746 | 754 |
| |
747 | 755 |
| |
748 | 756 |
| |
| |||
752 | 760 |
| |
753 | 761 |
| |
754 | 762 |
| |
755 |
| - | |
| 763 | + | |
756 | 764 |
| |
757 | 765 |
| |
758 | 766 |
| |
759 | 767 |
| |
760 | 768 |
| |
761 | 769 |
| |
762 |
| - | |
| 770 | + | |
763 | 771 |
| |
764 | 772 |
| |
765 | 773 |
| |
766 | 774 |
| |
767 | 775 |
| |
768 |
| - | |
| 776 | + | |
769 | 777 |
| |
770 | 778 |
| |
771 | 779 |
| |
| |||
775 | 783 |
| |
776 | 784 |
| |
777 | 785 |
| |
778 |
| - | |
| 786 | + | |
779 | 787 |
| |
780 | 788 |
| |
781 | 789 |
| |
| |||
812 | 820 |
| |
813 | 821 |
| |
814 | 822 |
| |
815 |
| - | |
| 823 | + | |
816 | 824 |
| |
817 | 825 |
| |
818 | 826 |
| |
819 | 827 |
| |
820 | 828 |
| |
821 | 829 |
| |
822 |
| - | |
| 830 | + | |
823 | 831 |
| |
824 | 832 |
| |
825 | 833 |
| |
| |||
844 | 852 |
| |
845 | 853 |
| |
846 | 854 |
| |
847 |
| - | |
| 855 | + | |
| 856 | + | |
| 857 | + | |
| 858 | + | |
| 859 | + | |
| 860 | + | |
848 | 861 |
| |
849 |
| - | |
850 |
| - | |
| 862 | + | |
851 | 863 |
| |
852 | 864 |
| |
853 | 865 |
| |
| |||
860 | 872 |
| |
861 | 873 |
| |
862 | 874 |
| |
863 |
| - | |
864 |
| - | |
| 875 | + | |
865 | 876 |
| |
866 | 877 |
| |
867 | 878 |
| |
868 | 879 |
| |
869 | 880 |
| |
870 | 881 |
| |
871 |
| - | |
| 882 | + | |
872 | 883 |
| |
873 | 884 |
| |
874 | 885 |
| |
875 | 886 |
| |
876 | 887 |
| |
877 | 888 |
| |
878 | 889 |
| |
| 890 | + | |
| 891 | + | |
879 | 892 |
| |
| 893 | + | |
880 | 894 |
| |
881 | 895 |
| |
882 | 896 |
| |
883 | 897 |
| |
884 | 898 |
| |
| 899 | + | |
| 900 | + | |
| 901 | + | |
885 | 902 |
| |
886 | 903 |
| |
887 | 904 |
| |
|
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)