postgres.git / summary / log / commit / refs

commit    0a29cf693d385a60fb37c1f396af6fd8ffadc2e6
Author:   Alvaro Herrera <alvherre@alvh.no-ip.org>
Date:     Sun Dec 27 16:03:19 2015 +0000
First released in: 9.6.0, 9.1.20, 9.2.15, 9.3.11, 9.4.6, 9.5.0

    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.


contrib/pgcrypto/crypt-blowfish.c | 3 +++ contrib/pgcrypto/crypt-des.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/contrib/pgcrypto/crypt-blowfish.c b/contrib/pgcrypto/crypt-blowfish.c index 4054e6a06fc..6feaefcf7be 100644 --- a/contrib/pgcrypto/crypt-blowfish.c +++ b/contrib/pgcrypto/crypt-blowfish.c @@ -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]; diff --git a/contrib/pgcrypto/crypt-des.c b/contrib/pgcrypto/crypt-des.c index 2108be8c379..56a267fb6c9 100644 --- a/contrib/pgcrypto/crypt-des.c +++ b/contrib/pgcrypto/crypt-des.c @@ -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. */ [parent: 70ff73717004]