Skip to content

Commit 4d6b89a

Browse files
Fix UB in binascii.b2a_ascii85
1 parent a95ee3a commit 4d6b89a

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

Modules/binascii.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1240,7 +1240,7 @@ binascii_b2a_ascii85_impl(PyObject *module, Py_buffer *data, int foldspaces,
12401240

12411241
/* Encode all full-length chunks. */
12421242
for (; bin_len >= 4; bin_len -= 4, bin_data += 4) {
1243-
uint32_t leftchar = (bin_data[0] << 24) | (bin_data[1] << 16) |
1243+
uint32_t leftchar = ((uint32_t)bin_data[0] << 24) | (bin_data[1] << 16) |
12441244
(bin_data[2] << 8) | bin_data[3];
12451245
if (leftchar == BASE85_A85_Z) {
12461246
*ascii_data++ = 'z';
@@ -1481,7 +1481,7 @@ binascii_b2a_base85_impl(PyObject *module, Py_buffer *data, int pad,
14811481

14821482
/* Encode all full-length chunks. */
14831483
for (; bin_len >= 4; bin_len -= 4, bin_data += 4) {
1484-
uint32_t leftchar = (bin_data[0] << 24) | (bin_data[1] << 16) |
1484+
uint32_t leftchar = ((uint32_t)bin_data[0] << 24) | (bin_data[1] << 16) |
14851485
(bin_data[2] << 8) | bin_data[3];
14861486

14871487
ascii_data[4] = table_b2a[leftchar % 85];

0 commit comments

Comments
 (0)