From 1b6102eb73f4483eb30f3008b07882a93ff369f8 Mon Sep 17 00:00:00 2001 From: Alvaro Herrera Date: Sun, 27 Dec 2015 13:03:19 -0300 Subject: 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 +++ 1 file changed, 3 insertions(+) (limited to 'contrib/pgcrypto/crypt-blowfish.c') diff --git a/contrib/pgcrypto/crypt-blowfish.c b/contrib/pgcrypto/crypt-blowfish.c index aec7c00cdb9..dc88593bc1e 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]; -- cgit v1.2.3