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 changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
656 | 656 | | |
657 | 657 | | |
658 | 658 | | |
| 659 | + | |
659 | 660 | | |
660 | 661 | | |
661 | 662 | | |
| |||
| 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 | | |
| |||
| 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 | | |
| |||
| 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)