Function DES_ecb3_encrypt has unstable signature in OpenSSL.

Different versions of OpenSSL have different argument types
and it is not possible to pick right types by OpenSSL version.

Following patch silents compiler by forcing argument to (void *).

Index: pgsql/contrib/pgcrypto/openssl.c
===================================================================
*** pgsql.orig/contrib/pgcrypto/openssl.c
--- pgsql/contrib/pgcrypto/openssl.c
*************** ossl_des3_ecb_encrypt(PX_Cipher * c, con
*** 526,532 ****
        ossldata   *od = c->ptr;
  
        for (i = 0; i < dlen / bs; i++)
!               DES_ecb3_encrypt(data + i * bs, res + i * bs,
                                                 &od->u.des3.k1, 
&od->u.des3.k2, &od->u.des3.k3, 1);
        return 0;
  }
--- 526,532 ----
        ossldata   *od = c->ptr;
  
        for (i = 0; i < dlen / bs; i++)
!               DES_ecb3_encrypt((void *)(data + i * bs), (void *)(res + i * 
bs),
                                                 &od->u.des3.k1, 
&od->u.des3.k2, &od->u.des3.k3, 1);
        return 0;
  }
*************** ossl_des3_ecb_decrypt(PX_Cipher * c, con
*** 540,546 ****
        ossldata   *od = c->ptr;
  
        for (i = 0; i < dlen / bs; i++)
!               DES_ecb3_encrypt(data + i * bs, res + i * bs,
                                                 &od->u.des3.k1, 
&od->u.des3.k2, &od->u.des3.k3, 0);
        return 0;
  }
--- 540,546 ----
        ossldata   *od = c->ptr;
  
        for (i = 0; i < dlen / bs; i++)
!               DES_ecb3_encrypt((void *)(data + i * bs), (void *)(res + i * 
bs),
                                                 &od->u.des3.k1, 
&od->u.des3.k2, &od->u.des3.k3, 0);
        return 0;
  }

--

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to