forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commitbd65cb3
pg_logicalinspect: Fix possible crash when passing a directory path.
Previously, pg_logicalinspect functions were too trusting of theirinput and blindly passed it to SnapBuildRestoreSnapshot(). If theinput pointed to a directory, the server could a PANIC error whileattempting to fsync_fname() with isdir=false on a directory.This commit adds validation checks for input filenames and passes theLSN extracted from the filename to SnapBuildRestoreSnapshot() insteadof the filename itself. It also adds regression tests for variousinput patterns and permission checks.Bug: #18828Reported-by: Robins Tharakan <tharakan@gmail.com>Co-authored-by: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>Co-authored-by: Masahiko Sawada <sawada.mshk@gmail.com>Discussion:https://postgr.es/m/18828-0f4701c635064211@postgresql.org1 parenta49927f commitbd65cb3
File tree
6 files changed
+183
-18
lines changed- contrib/pg_logicalinspect
- expected
- sql
- src
- backend/replication/logical
- include/replication
6 files changed
+183
-18
lines changedLines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
11 | 11 |
| |
12 | 12 |
| |
13 | 13 |
| |
| 14 | + | |
14 | 15 |
| |
15 | 16 |
| |
16 | 17 |
| |
|
Lines changed: 81 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 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 | + |
Lines changed: 45 additions & 10 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
48 | 48 |
| |
49 | 49 |
| |
50 | 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 | + | |
51 | 90 |
| |
52 | 91 |
| |
53 | 92 |
| |
| |||
60 | 99 |
| |
61 | 100 |
| |
62 | 101 |
| |
63 |
| - | |
| 102 | + | |
64 | 103 |
| |
65 | 104 |
| |
66 | 105 |
| |
67 | 106 |
| |
68 | 107 |
| |
69 | 108 |
| |
70 | 109 |
| |
71 |
| - | |
72 |
| - | |
73 |
| - | |
| 110 | + | |
74 | 111 |
| |
75 | 112 |
| |
76 |
| - | |
| 113 | + | |
77 | 114 |
| |
78 | 115 |
| |
79 | 116 |
| |
| |||
97 | 134 |
| |
98 | 135 |
| |
99 | 136 |
| |
100 |
| - | |
| 137 | + | |
101 | 138 |
| |
102 | 139 |
| |
103 | 140 |
| |
104 | 141 |
| |
105 | 142 |
| |
106 | 143 |
| |
107 | 144 |
| |
108 |
| - | |
109 |
| - | |
110 |
| - | |
| 145 | + | |
111 | 146 |
| |
112 | 147 |
| |
113 |
| - | |
| 148 | + | |
114 | 149 |
| |
115 | 150 |
| |
116 | 151 |
| |
|
Lines changed: 48 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + |
Lines changed: 7 additions & 7 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1691 | 1691 |
| |
1692 | 1692 |
| |
1693 | 1693 |
| |
1694 |
| - | |
| 1694 | + | |
1695 | 1695 |
| |
1696 | 1696 |
| |
1697 | 1697 |
| |
1698 | 1698 |
| |
1699 | 1699 |
| |
| 1700 | + | |
| 1701 | + | |
| 1702 | + | |
| 1703 | + | |
| 1704 | + | |
1700 | 1705 |
| |
1701 | 1706 |
| |
1702 | 1707 |
| |
| |||
1788 | 1793 |
| |
1789 | 1794 |
| |
1790 | 1795 |
| |
1791 |
| - | |
1792 | 1796 |
| |
1793 | 1797 |
| |
1794 | 1798 |
| |
1795 | 1799 |
| |
1796 | 1800 |
| |
1797 |
| - | |
1798 |
| - | |
1799 |
| - | |
1800 |
| - | |
1801 | 1801 |
| |
1802 |
| - | |
| 1802 | + | |
1803 | 1803 |
| |
1804 | 1804 |
| |
1805 | 1805 |
| |
|
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
193 | 193 |
| |
194 | 194 |
| |
195 | 195 |
| |
196 |
| - | |
| 196 | + | |
197 | 197 |
| |
198 | 198 |
| |
199 | 199 |
|
0 commit comments
Comments
(0)