mirror of
https://github.com/postgres/postgres.git
synced 2025-04-18 13:44:19 +03:00
pgcrypto: Fix check for buffer size
The code copying the PGP block into the temp buffer failed to account for the extra 2 bytes in the buffer which are needed for the prefix. If the block was oversized, subsequent checks of the prefix would have exceeded the buffer size. Since the block sizes are hardcoded in the list of supported ciphers it can be verified that there is no live bug here. Backpatch all the way for consistency though, as this bug is old. Author: Mikhail Gribkov <youzhick@gmail.com> Discussion: https://postgr.es/m/CAMEv5_uWvcMCMdRFDsJLz2Q8g16HEa9xWyfrkr+FYMMFJhawOw@mail.gmail.com Backpatch-through: v12
This commit is contained in:
parent
4c48c0fe56
commit
b527ebc1d3
@ -250,7 +250,8 @@ prefix_init(void **priv_p, void *arg, PullFilter *src)
|
||||
uint8 tmpbuf[PGP_MAX_BLOCK + 2];
|
||||
|
||||
len = pgp_get_cipher_block_size(ctx->cipher_algo);
|
||||
if (len > sizeof(tmpbuf))
|
||||
/* Make sure we have space for prefix */
|
||||
if (len > PGP_MAX_BLOCK)
|
||||
return PXE_BUG;
|
||||
|
||||
res = pullf_read_max(src, len + 2, &buf, tmpbuf);
|
||||
|
Loading…
x
Reference in New Issue
Block a user