Commit 414bef3
committed
Improve handling of out-of-memory in libpq.
If an allocation fails in the main message handling loop, pqParseInput3
or pqParseInput2, it should not be treated as "not enough data available
yet". Otherwise libpq will wait indefinitely for more data to arrive from
the server, and gets stuck forever.
This isn't a complete fix - getParamDescriptions and getCopyStart still
have the same issue, but it's a step in the right direction.
Michael Paquier and me. Backpatch to all supported versions.1 parent c81c956 commit 414bef3
2 files changed
+83
-31
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
498 | 498 | | |
499 | 499 | | |
500 | 500 | | |
501 | | - | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
502 | 511 | | |
503 | | - | |
504 | | - | |
505 | 512 | | |
506 | 513 | | |
507 | 514 | | |
| |||
522 | 529 | | |
523 | 530 | | |
524 | 531 | | |
| 532 | + | |
525 | 533 | | |
526 | 534 | | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
527 | 542 | | |
528 | 543 | | |
529 | 544 | | |
| |||
965 | 980 | | |
966 | 981 | | |
967 | 982 | | |
| 983 | + | |
| 984 | + | |
| 985 | + | |
| 986 | + | |
968 | 987 | | |
969 | 988 | | |
970 | | - | |
971 | | - | |
972 | | - | |
973 | | - | |
974 | | - | |
975 | | - | |
| 989 | + | |
| 990 | + | |
| 991 | + | |
| 992 | + | |
| 993 | + | |
976 | 994 | | |
977 | 995 | | |
978 | 996 | | |
| |||
1024 | 1042 | | |
1025 | 1043 | | |
1026 | 1044 | | |
1027 | | - | |
| 1045 | + | |
| 1046 | + | |
| 1047 | + | |
| 1048 | + | |
| 1049 | + | |
1028 | 1050 | | |
1029 | 1051 | | |
1030 | 1052 | | |
1031 | 1053 | | |
1032 | 1054 | | |
1033 | | - | |
1034 | | - | |
1035 | | - | |
| 1055 | + | |
| 1056 | + | |
| 1057 | + | |
| 1058 | + | |
| 1059 | + | |
| 1060 | + | |
1036 | 1061 | | |
1037 | 1062 | | |
1038 | 1063 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
204 | 204 | | |
205 | 205 | | |
206 | 206 | | |
207 | | - | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
208 | 212 | | |
209 | | - | |
210 | | - | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
211 | 216 | | |
212 | 217 | | |
213 | 218 | | |
| |||
226 | 231 | | |
227 | 232 | | |
228 | 233 | | |
229 | | - | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
230 | 239 | | |
231 | 240 | | |
232 | 241 | | |
| |||
239 | 248 | | |
240 | 249 | | |
241 | 250 | | |
242 | | - | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
243 | 256 | | |
244 | 257 | | |
245 | 258 | | |
| |||
306 | 319 | | |
307 | 320 | | |
308 | 321 | | |
309 | | - | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
310 | 327 | | |
311 | 328 | | |
312 | 329 | | |
| |||
822 | 839 | | |
823 | 840 | | |
824 | 841 | | |
| 842 | + | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
825 | 846 | | |
826 | 847 | | |
827 | | - | |
828 | | - | |
829 | | - | |
| 848 | + | |
| 849 | + | |
830 | 850 | | |
831 | 851 | | |
832 | 852 | | |
| |||
966 | 986 | | |
967 | 987 | | |
968 | 988 | | |
969 | | - | |
970 | | - | |
971 | | - | |
| 989 | + | |
| 990 | + | |
972 | 991 | | |
973 | 992 | | |
974 | | - | |
| 993 | + | |
| 994 | + | |
| 995 | + | |
| 996 | + | |
| 997 | + | |
975 | 998 | | |
976 | 999 | | |
977 | 1000 | | |
978 | | - | |
979 | | - | |
980 | | - | |
981 | | - | |
982 | | - | |
| 1001 | + | |
| 1002 | + | |
| 1003 | + | |
| 1004 | + | |
| 1005 | + | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
| 1009 | + | |
983 | 1010 | | |
984 | 1011 | | |
985 | 1012 | | |
| |||
0 commit comments