Commit 87a50169 authored by Neil Conway's avatar Neil Conway

Minor code cleanup for pgcrypto: for UDFs declared to be strict, checking

for NULL-ness of function arguments is wasted code.
parent d19798e5
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $PostgreSQL: pgsql/contrib/pgcrypto/pgcrypto.c,v 1.24 2006/10/04 00:29:46 momjian Exp $ * $PostgreSQL: pgsql/contrib/pgcrypto/pgcrypto.c,v 1.25 2006/11/10 06:28:29 neilc Exp $
*/ */
#include "postgres.h" #include "postgres.h"
...@@ -45,8 +45,7 @@ PG_MODULE_MAGIC; ...@@ -45,8 +45,7 @@ PG_MODULE_MAGIC;
/* private stuff */ /* private stuff */
typedef int (*PFN) (const char *name, void **res); typedef int (*PFN) (const char *name, void **res);
static void * static void *find_provider(text *name, PFN pf, char *desc, int silent);
find_provider(text *name, PFN pf, char *desc, int silent);
/* SQL function: hash(bytea, text) returns bytea */ /* SQL function: hash(bytea, text) returns bytea */
PG_FUNCTION_INFO_V1(pg_digest); PG_FUNCTION_INFO_V1(pg_digest);
...@@ -61,9 +60,6 @@ pg_digest(PG_FUNCTION_ARGS) ...@@ -61,9 +60,6 @@ pg_digest(PG_FUNCTION_ARGS)
PX_MD *md; PX_MD *md;
bytea *res; bytea *res;
if (PG_ARGISNULL(0) || PG_ARGISNULL(1))
PG_RETURN_NULL();
name = PG_GETARG_TEXT_P(1); name = PG_GETARG_TEXT_P(1);
/* will give error if fails */ /* will give error if fails */
...@@ -102,9 +98,6 @@ pg_hmac(PG_FUNCTION_ARGS) ...@@ -102,9 +98,6 @@ pg_hmac(PG_FUNCTION_ARGS)
PX_HMAC *h; PX_HMAC *h;
bytea *res; bytea *res;
if (PG_ARGISNULL(0) || PG_ARGISNULL(1) || PG_ARGISNULL(2))
PG_RETURN_NULL();
name = PG_GETARG_TEXT_P(2); name = PG_GETARG_TEXT_P(2);
/* will give error if fails */ /* will give error if fails */
...@@ -144,9 +137,6 @@ pg_gen_salt(PG_FUNCTION_ARGS) ...@@ -144,9 +137,6 @@ pg_gen_salt(PG_FUNCTION_ARGS)
text *res; text *res;
char buf[PX_MAX_SALT_LEN + 1]; char buf[PX_MAX_SALT_LEN + 1];
if (PG_ARGISNULL(0))
PG_RETURN_NULL();
arg0 = PG_GETARG_TEXT_P(0); arg0 = PG_GETARG_TEXT_P(0);
len = VARSIZE(arg0) - VARHDRSZ; len = VARSIZE(arg0) - VARHDRSZ;
...@@ -180,9 +170,6 @@ pg_gen_salt_rounds(PG_FUNCTION_ARGS) ...@@ -180,9 +170,6 @@ pg_gen_salt_rounds(PG_FUNCTION_ARGS)
text *res; text *res;
char buf[PX_MAX_SALT_LEN + 1]; char buf[PX_MAX_SALT_LEN + 1];
if (PG_ARGISNULL(0) || PG_ARGISNULL(1))
PG_RETURN_NULL();
arg0 = PG_GETARG_TEXT_P(0); arg0 = PG_GETARG_TEXT_P(0);
rounds = PG_GETARG_INT32(1); rounds = PG_GETARG_INT32(1);
...@@ -222,9 +209,6 @@ pg_crypt(PG_FUNCTION_ARGS) ...@@ -222,9 +209,6 @@ pg_crypt(PG_FUNCTION_ARGS)
*resbuf; *resbuf;
text *res; text *res;
if (PG_ARGISNULL(0) || PG_ARGISNULL(1))
PG_RETURN_NULL();
arg0 = PG_GETARG_TEXT_P(0); arg0 = PG_GETARG_TEXT_P(0);
arg1 = PG_GETARG_TEXT_P(1); arg1 = PG_GETARG_TEXT_P(1);
len0 = VARSIZE(arg0) - VARHDRSZ; len0 = VARSIZE(arg0) - VARHDRSZ;
...@@ -239,9 +223,7 @@ pg_crypt(PG_FUNCTION_ARGS) ...@@ -239,9 +223,7 @@ pg_crypt(PG_FUNCTION_ARGS)
buf0[len0] = '\0'; buf0[len0] = '\0';
buf1[len1] = '\0'; buf1[len1] = '\0';
resbuf = palloc(PX_MAX_CRYPT); resbuf = palloc0(PX_MAX_CRYPT);
memset(resbuf, 0, PX_MAX_CRYPT);
cres = px_crypt(buf0, buf1, resbuf, PX_MAX_CRYPT); cres = px_crypt(buf0, buf1, resbuf, PX_MAX_CRYPT);
...@@ -282,9 +264,6 @@ pg_encrypt(PG_FUNCTION_ARGS) ...@@ -282,9 +264,6 @@ pg_encrypt(PG_FUNCTION_ARGS)
klen, klen,
rlen; rlen;
if (PG_ARGISNULL(0) || PG_ARGISNULL(1) || PG_ARGISNULL(2))
PG_RETURN_NULL();
type = PG_GETARG_TEXT_P(2); type = PG_GETARG_TEXT_P(2);
c = find_provider(type, (PFN) px_find_combo, "Cipher", 0); c = find_provider(type, (PFN) px_find_combo, "Cipher", 0);
...@@ -334,9 +313,6 @@ pg_decrypt(PG_FUNCTION_ARGS) ...@@ -334,9 +313,6 @@ pg_decrypt(PG_FUNCTION_ARGS)
klen, klen,
rlen; rlen;
if (PG_ARGISNULL(0) || PG_ARGISNULL(1) || PG_ARGISNULL(2))
PG_RETURN_NULL();
type = PG_GETARG_TEXT_P(2); type = PG_GETARG_TEXT_P(2);
c = find_provider(type, (PFN) px_find_combo, "Cipher", 0); c = find_provider(type, (PFN) px_find_combo, "Cipher", 0);
...@@ -387,10 +363,6 @@ pg_encrypt_iv(PG_FUNCTION_ARGS) ...@@ -387,10 +363,6 @@ pg_encrypt_iv(PG_FUNCTION_ARGS)
ivlen, ivlen,
rlen; rlen;
if (PG_ARGISNULL(0) || PG_ARGISNULL(1)
|| PG_ARGISNULL(2) || PG_ARGISNULL(3))
PG_RETURN_NULL();
type = PG_GETARG_TEXT_P(3); type = PG_GETARG_TEXT_P(3);
c = find_provider(type, (PFN) px_find_combo, "Cipher", 0); c = find_provider(type, (PFN) px_find_combo, "Cipher", 0);
...@@ -445,10 +417,6 @@ pg_decrypt_iv(PG_FUNCTION_ARGS) ...@@ -445,10 +417,6 @@ pg_decrypt_iv(PG_FUNCTION_ARGS)
rlen, rlen,
ivlen; ivlen;
if (PG_ARGISNULL(0) || PG_ARGISNULL(1)
|| PG_ARGISNULL(2) || PG_ARGISNULL(3))
PG_RETURN_NULL();
type = PG_GETARG_TEXT_P(3); type = PG_GETARG_TEXT_P(3);
c = find_provider(type, (PFN) px_find_combo, "Cipher", 0); c = find_provider(type, (PFN) px_find_combo, "Cipher", 0);
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $PostgreSQL: pgsql/contrib/pgcrypto/pgp-pgsql.c,v 1.7 2005/11/22 18:17:04 momjian Exp $ * $PostgreSQL: pgsql/contrib/pgcrypto/pgp-pgsql.c,v 1.8 2006/11/10 06:28:29 neilc Exp $
*/ */
#include "postgres.h" #include "postgres.h"
...@@ -74,18 +74,6 @@ PG_FUNCTION_INFO_V1(pgp_key_id_w); ...@@ -74,18 +74,6 @@ PG_FUNCTION_INFO_V1(pgp_key_id_w);
PG_FUNCTION_INFO_V1(pg_armor); PG_FUNCTION_INFO_V1(pg_armor);
PG_FUNCTION_INFO_V1(pg_dearmor); PG_FUNCTION_INFO_V1(pg_dearmor);
/*
* check for NULL arguments
*/
#define CHECK_ARGS() \
do { \
int a; \
for (a = 0; a < PG_NARGS(); a++) { \
if (PG_ARGISNULL(a)) \
PG_RETURN_NULL(); \
} \
} while (0)
/* /*
* Mix a block of data into RNG. * Mix a block of data into RNG.
*/ */
...@@ -660,7 +648,6 @@ pgp_sym_encrypt_bytea(PG_FUNCTION_ARGS) ...@@ -660,7 +648,6 @@ pgp_sym_encrypt_bytea(PG_FUNCTION_ARGS)
text *arg = NULL; text *arg = NULL;
text *res; text *res;
CHECK_ARGS();
data = PG_GETARG_BYTEA_P(0); data = PG_GETARG_BYTEA_P(0);
key = PG_GETARG_BYTEA_P(1); key = PG_GETARG_BYTEA_P(1);
if (PG_NARGS() > 2) if (PG_NARGS() > 2)
...@@ -683,7 +670,6 @@ pgp_sym_encrypt_text(PG_FUNCTION_ARGS) ...@@ -683,7 +670,6 @@ pgp_sym_encrypt_text(PG_FUNCTION_ARGS)
text *arg = NULL; text *arg = NULL;
text *res; text *res;
CHECK_ARGS();
data = PG_GETARG_BYTEA_P(0); data = PG_GETARG_BYTEA_P(0);
key = PG_GETARG_BYTEA_P(1); key = PG_GETARG_BYTEA_P(1);
if (PG_NARGS() > 2) if (PG_NARGS() > 2)
...@@ -707,7 +693,6 @@ pgp_sym_decrypt_bytea(PG_FUNCTION_ARGS) ...@@ -707,7 +693,6 @@ pgp_sym_decrypt_bytea(PG_FUNCTION_ARGS)
text *arg = NULL; text *arg = NULL;
text *res; text *res;
CHECK_ARGS();
data = PG_GETARG_BYTEA_P(0); data = PG_GETARG_BYTEA_P(0);
key = PG_GETARG_BYTEA_P(1); key = PG_GETARG_BYTEA_P(1);
if (PG_NARGS() > 2) if (PG_NARGS() > 2)
...@@ -730,7 +715,6 @@ pgp_sym_decrypt_text(PG_FUNCTION_ARGS) ...@@ -730,7 +715,6 @@ pgp_sym_decrypt_text(PG_FUNCTION_ARGS)
text *arg = NULL; text *arg = NULL;
text *res; text *res;
CHECK_ARGS();
data = PG_GETARG_BYTEA_P(0); data = PG_GETARG_BYTEA_P(0);
key = PG_GETARG_BYTEA_P(1); key = PG_GETARG_BYTEA_P(1);
if (PG_NARGS() > 2) if (PG_NARGS() > 2)
...@@ -757,7 +741,6 @@ pgp_pub_encrypt_bytea(PG_FUNCTION_ARGS) ...@@ -757,7 +741,6 @@ pgp_pub_encrypt_bytea(PG_FUNCTION_ARGS)
text *arg = NULL; text *arg = NULL;
text *res; text *res;
CHECK_ARGS();
data = PG_GETARG_BYTEA_P(0); data = PG_GETARG_BYTEA_P(0);
key = PG_GETARG_BYTEA_P(1); key = PG_GETARG_BYTEA_P(1);
if (PG_NARGS() > 2) if (PG_NARGS() > 2)
...@@ -780,7 +763,6 @@ pgp_pub_encrypt_text(PG_FUNCTION_ARGS) ...@@ -780,7 +763,6 @@ pgp_pub_encrypt_text(PG_FUNCTION_ARGS)
text *arg = NULL; text *arg = NULL;
text *res; text *res;
CHECK_ARGS();
data = PG_GETARG_BYTEA_P(0); data = PG_GETARG_BYTEA_P(0);
key = PG_GETARG_BYTEA_P(1); key = PG_GETARG_BYTEA_P(1);
if (PG_NARGS() > 2) if (PG_NARGS() > 2)
...@@ -805,7 +787,6 @@ pgp_pub_decrypt_bytea(PG_FUNCTION_ARGS) ...@@ -805,7 +787,6 @@ pgp_pub_decrypt_bytea(PG_FUNCTION_ARGS)
*arg = NULL; *arg = NULL;
text *res; text *res;
CHECK_ARGS();
data = PG_GETARG_BYTEA_P(0); data = PG_GETARG_BYTEA_P(0);
key = PG_GETARG_BYTEA_P(1); key = PG_GETARG_BYTEA_P(1);
if (PG_NARGS() > 2) if (PG_NARGS() > 2)
...@@ -833,7 +814,6 @@ pgp_pub_decrypt_text(PG_FUNCTION_ARGS) ...@@ -833,7 +814,6 @@ pgp_pub_decrypt_text(PG_FUNCTION_ARGS)
*arg = NULL; *arg = NULL;
text *res; text *res;
CHECK_ARGS();
data = PG_GETARG_BYTEA_P(0); data = PG_GETARG_BYTEA_P(0);
key = PG_GETARG_BYTEA_P(1); key = PG_GETARG_BYTEA_P(1);
if (PG_NARGS() > 2) if (PG_NARGS() > 2)
...@@ -866,9 +846,6 @@ pg_armor(PG_FUNCTION_ARGS) ...@@ -866,9 +846,6 @@ pg_armor(PG_FUNCTION_ARGS)
res_len, res_len,
guess_len; guess_len;
if (PG_ARGISNULL(0))
PG_RETURN_NULL();
data = PG_GETARG_BYTEA_P(0); data = PG_GETARG_BYTEA_P(0);
data_len = VARSIZE(data) - VARHDRSZ; data_len = VARSIZE(data) - VARHDRSZ;
...@@ -896,9 +873,6 @@ pg_dearmor(PG_FUNCTION_ARGS) ...@@ -896,9 +873,6 @@ pg_dearmor(PG_FUNCTION_ARGS)
res_len, res_len,
guess_len; guess_len;
if (PG_ARGISNULL(0))
PG_RETURN_NULL();
data = PG_GETARG_TEXT_P(0); data = PG_GETARG_TEXT_P(0);
data_len = VARSIZE(data) - VARHDRSZ; data_len = VARSIZE(data) - VARHDRSZ;
...@@ -933,9 +907,6 @@ pgp_key_id_w(PG_FUNCTION_ARGS) ...@@ -933,9 +907,6 @@ pgp_key_id_w(PG_FUNCTION_ARGS)
int res_len; int res_len;
MBuf *buf; MBuf *buf;
if (PG_ARGISNULL(0))
PG_RETURN_NULL();
data = PG_GETARG_BYTEA_P(0); data = PG_GETARG_BYTEA_P(0);
buf = create_mbuf_from_vardata(data); buf = create_mbuf_from_vardata(data);
res = palloc(VARHDRSZ + 17); res = palloc(VARHDRSZ + 17);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment