forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commiteb8312a
committed
Detect bad input for types xid, xid8, and cid.
Historically these input functions just called strtoul or strtoulland returned the result, with no error detection whatever. Upgradethem to reject garbage input and out-of-range values, similarly toour other numeric input routines.To share the code for this with type oid, adjust the existing"oidin_subr" to be agnostic about the SQL name of the type it ishandling, and move it to numutils.c; then clone it for 64-bit types.Because the xid types previously accepted hex and octal input byreason of calling strtoul[l] with third argument zero, I made thecommon subroutine do that too, with the consequence that type oidnow also accepts hex and octal input. In view of6fcda9a, thatseems like a good thing.While at it, simplify the existing over-complicated handling ofsyntax errors from strtoul: we only need one ereturn not three.Discussion:https://postgr.es/m/3526121.1672000729@sss.pgh.pa.us1 parent63c844a commiteb8312a
File tree
6 files changed
+222
-116
lines changed- src
- backend/utils/adt
- include/utils
- test/regress
- expected
- sql
6 files changed
+222
-116
lines changedLines changed: 150 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
477 | 477 |
| |
478 | 478 |
| |
479 | 479 |
| |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
480 | 630 |
| |
481 | 631 |
| |
482 | 632 |
| |
|
Lines changed: 5 additions & 96 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
32 | 32 |
| |
33 | 33 |
| |
34 | 34 |
| |
35 |
| - | |
36 |
| - | |
37 |
| - | |
38 |
| - | |
39 |
| - | |
40 |
| - | |
41 |
| - | |
42 |
| - | |
43 |
| - | |
44 |
| - | |
45 |
| - | |
46 |
| - | |
47 |
| - | |
48 |
| - | |
49 |
| - | |
50 |
| - | |
51 |
| - | |
52 |
| - | |
53 |
| - | |
54 |
| - | |
55 |
| - | |
56 |
| - | |
57 |
| - | |
58 |
| - | |
59 |
| - | |
60 |
| - | |
61 |
| - | |
62 |
| - | |
63 |
| - | |
64 |
| - | |
65 |
| - | |
66 |
| - | |
67 |
| - | |
68 |
| - | |
69 |
| - | |
70 |
| - | |
71 |
| - | |
72 |
| - | |
73 |
| - | |
74 |
| - | |
75 |
| - | |
76 |
| - | |
77 |
| - | |
78 |
| - | |
79 |
| - | |
80 |
| - | |
81 |
| - | |
82 |
| - | |
83 |
| - | |
84 |
| - | |
85 |
| - | |
86 |
| - | |
87 |
| - | |
88 |
| - | |
89 |
| - | |
90 |
| - | |
91 |
| - | |
92 |
| - | |
93 |
| - | |
94 |
| - | |
95 |
| - | |
96 |
| - | |
97 |
| - | |
98 |
| - | |
99 |
| - | |
100 |
| - | |
101 |
| - | |
102 |
| - | |
103 |
| - | |
104 |
| - | |
105 |
| - | |
106 |
| - | |
107 |
| - | |
108 |
| - | |
109 |
| - | |
110 |
| - | |
111 |
| - | |
112 |
| - | |
113 |
| - | |
114 |
| - | |
115 |
| - | |
116 |
| - | |
117 |
| - | |
118 |
| - | |
119 |
| - | |
120 |
| - | |
121 |
| - | |
122 |
| - | |
123 |
| - | |
124 |
| - | |
125 |
| - | |
126 |
| - | |
127 |
| - | |
128 | 35 |
| |
129 | 36 |
| |
130 | 37 |
| |
131 | 38 |
| |
132 | 39 |
| |
133 | 40 |
| |
134 |
| - | |
| 41 | + | |
135 | 42 |
| |
136 | 43 |
| |
137 | 44 |
| |
| |||
218 | 125 |
| |
219 | 126 |
| |
220 | 127 |
| |
221 |
| - | |
| 128 | + | |
| 129 | + | |
222 | 130 |
| |
223 | 131 |
| |
224 | 132 |
| |
| |||
339 | 247 |
| |
340 | 248 |
| |
341 | 249 |
| |
342 |
| - | |
| 250 | + | |
| 251 | + | |
343 | 252 |
| |
344 | 253 |
| |
345 | 254 |
| |
|
Lines changed: 9 additions & 3 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
31 | 31 |
| |
32 | 32 |
| |
33 | 33 |
| |
| 34 | + | |
34 | 35 |
| |
35 |
| - | |
| 36 | + | |
| 37 | + | |
36 | 38 |
| |
37 | 39 |
| |
38 | 40 |
| |
| |||
183 | 185 |
| |
184 | 186 |
| |
185 | 187 |
| |
| 188 | + | |
186 | 189 |
| |
187 |
| - | |
| 190 | + | |
| 191 | + | |
188 | 192 |
| |
189 | 193 |
| |
190 | 194 |
| |
| |||
321 | 325 |
| |
322 | 326 |
| |
323 | 327 |
| |
| 328 | + | |
324 | 329 |
| |
325 |
| - | |
| 330 | + | |
| 331 | + | |
326 | 332 |
| |
327 | 333 |
| |
328 | 334 |
| |
|
Lines changed: 4 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
51 | 51 |
| |
52 | 52 |
| |
53 | 53 |
| |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
54 | 58 |
| |
55 | 59 |
| |
56 | 60 |
| |
|
0 commit comments
Comments
(0)