forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commitcfc40d3
committed
Introduce safer encoding and decoding routines for base64.c
This is a follow-up refactoring after09ec55b andb674211, which hasproved that the encoding and decoding routines used by SCRAM have apoor interface when it comes to check after buffer overflows. This addsan extra argument in the shape of the length of the result buffer foreach routine, which is used for overflow checks when encoding ordecoding an input string. The original idea comes from Tom Lane.As a result of that, the encoding routine can now fail, so all itscallers are adjusted to generate proper error messages in case ofproblems.On failure, the result buffer gets zeroed.Author: Michael PaquierReviewed-by: Daniel GustafssonDiscussion:https://postgr.es/m/20190623132535.GB1628@paquier.xyz1 parentd5ab9a8 commitcfc40d3
File tree
5 files changed
+210
-46
lines changed- src
- backend/libpq
- common
- include/common
- interfaces/libpq
5 files changed
+210
-46
lines changedLines changed: 55 additions & 19 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
510 | 510 |
| |
511 | 511 |
| |
512 | 512 |
| |
513 |
| - | |
514 |
| - | |
515 |
| - | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
516 | 518 |
| |
517 | 519 |
| |
518 | 520 |
| |
| |||
596 | 598 |
| |
597 | 599 |
| |
598 | 600 |
| |
599 |
| - | |
| 601 | + | |
| 602 | + | |
600 | 603 |
| |
601 |
| - | |
| 604 | + | |
602 | 605 |
| |
603 | 606 |
| |
604 | 607 |
| |
605 | 608 |
| |
606 | 609 |
| |
607 | 610 |
| |
608 | 611 |
| |
609 |
| - | |
| 612 | + | |
| 613 | + | |
610 | 614 |
| |
611 |
| - | |
| 615 | + | |
612 | 616 |
| |
613 | 617 |
| |
614 | 618 |
| |
615 | 619 |
| |
616 |
| - | |
| 620 | + | |
| 621 | + | |
617 | 622 |
| |
618 |
| - | |
| 623 | + | |
619 | 624 |
| |
620 | 625 |
| |
621 | 626 |
| |
| |||
649 | 654 |
| |
650 | 655 |
| |
651 | 656 |
| |
652 |
| - | |
653 |
| - | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
654 | 671 |
| |
655 | 672 |
| |
656 | 673 |
| |
| |||
1144 | 1161 |
| |
1145 | 1162 |
| |
1146 | 1163 |
| |
1147 |
| - | |
1148 |
| - | |
| 1164 | + | |
| 1165 | + | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
1149 | 1173 |
| |
1150 | 1174 |
| |
1151 | 1175 |
| |
| |||
1170 | 1194 |
| |
1171 | 1195 |
| |
1172 | 1196 |
| |
| 1197 | + | |
1173 | 1198 |
| |
1174 | 1199 |
| |
1175 | 1200 |
| |
| |||
1234 | 1259 |
| |
1235 | 1260 |
| |
1236 | 1261 |
| |
1237 |
| - | |
| 1262 | + | |
| 1263 | + | |
| 1264 | + | |
1238 | 1265 |
| |
1239 |
| - | |
| 1266 | + | |
| 1267 | + | |
| 1268 | + | |
1240 | 1269 |
| |
1241 | 1270 |
| |
1242 | 1271 |
| |
| |||
1276 | 1305 |
| |
1277 | 1306 |
| |
1278 | 1307 |
| |
1279 |
| - | |
1280 |
| - | |
| 1308 | + | |
| 1309 | + | |
| 1310 | + | |
| 1311 | + | |
1281 | 1312 |
| |
1282 | 1313 |
| |
1283 | 1314 |
| |
| |||
1322 | 1353 |
| |
1323 | 1354 |
| |
1324 | 1355 |
| |
1325 |
| - | |
| 1356 | + | |
| 1357 | + | |
| 1358 | + | |
1326 | 1359 |
| |
1327 |
| - | |
| 1360 | + | |
| 1361 | + | |
| 1362 | + | |
| 1363 | + | |
1328 | 1364 |
| |
1329 | 1365 |
| |
1330 | 1366 |
| |
|
Lines changed: 51 additions & 8 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
42 | 42 |
| |
43 | 43 |
| |
44 | 44 |
| |
45 |
| - | |
| 45 | + | |
| 46 | + | |
46 | 47 |
| |
47 | 48 |
| |
48 |
| - | |
| 49 | + | |
49 | 50 |
| |
50 | 51 |
| |
51 | 52 |
| |
| |||
65 | 66 |
| |
66 | 67 |
| |
67 | 68 |
| |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
68 | 76 |
| |
69 | 77 |
| |
70 | 78 |
| |
| |||
76 | 84 |
| |
77 | 85 |
| |
78 | 86 |
| |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
79 | 94 |
| |
80 | 95 |
| |
81 | 96 |
| |
82 | 97 |
| |
83 | 98 |
| |
84 | 99 |
| |
| 100 | + | |
85 | 101 |
| |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
86 | 106 |
| |
87 | 107 |
| |
88 | 108 |
| |
89 | 109 |
| |
90 | 110 |
| |
91 | 111 |
| |
92 |
| - | |
| 112 | + | |
| 113 | + | |
93 | 114 |
| |
94 | 115 |
| |
95 |
| - | |
| 116 | + | |
96 | 117 |
| |
97 | 118 |
| |
98 | 119 |
| |
| |||
109 | 130 |
| |
110 | 131 |
| |
111 | 132 |
| |
112 |
| - | |
| 133 | + | |
113 | 134 |
| |
114 | 135 |
| |
115 | 136 |
| |
| |||
126 | 147 |
| |
127 | 148 |
| |
128 | 149 |
| |
129 |
| - | |
| 150 | + | |
130 | 151 |
| |
131 | 152 |
| |
132 | 153 |
| |
| |||
139 | 160 |
| |
140 | 161 |
| |
141 | 162 |
| |
142 |
| - | |
| 163 | + | |
143 | 164 |
| |
144 | 165 |
| |
145 | 166 |
| |
146 | 167 |
| |
147 | 168 |
| |
148 | 169 |
| |
149 | 170 |
| |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
150 | 177 |
| |
| 178 | + | |
151 | 179 |
| |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
152 | 184 |
| |
| 185 | + | |
153 | 186 |
| |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
154 | 191 |
| |
| 192 | + | |
155 | 193 |
| |
156 | 194 |
| |
157 | 195 |
| |
| |||
163 | 201 |
| |
164 | 202 |
| |
165 | 203 |
| |
166 |
| - | |
| 204 | + | |
167 | 205 |
| |
168 | 206 |
| |
| 207 | + | |
169 | 208 |
| |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
170 | 213 |
| |
171 | 214 |
| |
172 | 215 |
| |
|
Lines changed: 53 additions & 6 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
198 | 198 |
| |
199 | 199 |
| |
200 | 200 |
| |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
201 | 205 |
| |
202 | 206 |
| |
203 | 207 |
| |
| |||
215 | 219 |
| |
216 | 220 |
| |
217 | 221 |
| |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
218 | 226 |
| |
219 | 227 |
| |
220 |
| - | |
221 |
| - | |
222 |
| - | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
223 | 231 |
| |
224 | 232 |
| |
225 | 233 |
| |
| |||
231 | 239 |
| |
232 | 240 |
| |
233 | 241 |
| |
234 |
| - | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
235 | 254 |
| |
236 |
| - | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
237 | 270 |
| |
238 |
| - | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
239 | 286 |
| |
240 | 287 |
| |
241 | 288 |
| |
|
Lines changed: 2 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
11 | 11 |
| |
12 | 12 |
| |
13 | 13 |
| |
14 |
| - | |
15 |
| - | |
| 14 | + | |
| 15 | + | |
16 | 16 |
| |
17 | 17 |
| |
18 | 18 |
| |
|
0 commit comments
Comments
(0)