mirror of https://github.com/postgres/postgres
Add forgotten CHECK_FOR_INTERRUPT calls in pgcrypto's crypt()
Both Blowfish and DES implementations of crypt() can take arbitrarily long time, depending on the number of rounds specified by the caller; make sure they can be interrupted. Author: Andreas Karlsson Reviewer: Jeff Janes Backpatch to 9.1.
This commit is contained in:
parent
f9643d0d6d
commit
51dd54ba79
|
@ -33,6 +33,7 @@
|
|||
*/
|
||||
|
||||
#include "postgres.h"
|
||||
#include "miscadmin.h"
|
||||
|
||||
#include "px-crypt.h"
|
||||
#include "px.h"
|
||||
|
@ -670,6 +671,8 @@ _crypt_blowfish_rn(const char *key, const char *setting,
|
|||
|
||||
do
|
||||
{
|
||||
CHECK_FOR_INTERRUPTS();
|
||||
|
||||
data.ctx.P[0] ^= data.expanded_key[0];
|
||||
data.ctx.P[1] ^= data.expanded_key[1];
|
||||
data.ctx.P[2] ^= data.expanded_key[2];
|
||||
|
|
|
@ -61,6 +61,7 @@
|
|||
*/
|
||||
|
||||
#include "postgres.h"
|
||||
#include "miscadmin.h"
|
||||
|
||||
#include "px-crypt.h"
|
||||
|
||||
|
@ -540,6 +541,8 @@ do_des(uint32 l_in, uint32 r_in, uint32 *l_out, uint32 *r_out, int count)
|
|||
|
||||
while (count--)
|
||||
{
|
||||
CHECK_FOR_INTERRUPTS();
|
||||
|
||||
/*
|
||||
* Do each round.
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue