Hi pgsql-hackers, Currently contrib/pgcrypto/pgp-pubenc.c contains code like:
uint8 algo = pk->algo; if (pk == NULL) ... However, if pk was NULL, then the if() condition would never be reached because the pk->algo dereference would segfault. This patch moves the dereference to below the condition which was the intended behavior. Regards, Marti
From a2500cda9e0e82883854a412ea12942e174e3dd2 Mon Sep 17 00:00:00 2001 From: Marti Raudsepp <ma...@juffo.org> Date: Wed, 20 Oct 2010 18:32:17 +0300 Subject: [PATCH] pgcrypto: Test for NULL before dereferencing pointer If pk is NULL, the backend would segfault when accessing ->algo and the following NULL check was never reached. This problem was found by Coccinelle (null_ref.cocci from coccicheck) --- contrib/pgcrypto/pgp-pubenc.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/contrib/pgcrypto/pgp-pubenc.c b/contrib/pgcrypto/pgp-pubenc.c index 4b4d1bf..943d2e4 100644 --- a/contrib/pgcrypto/pgp-pubenc.c +++ b/contrib/pgcrypto/pgp-pubenc.c @@ -199,7 +199,7 @@ pgp_write_pubenc_sesskey(PGP_Context *ctx, PushFilter *dst) PGP_PubKey *pk = ctx->pub_key; uint8 ver = 3; PushFilter *pkt = NULL; - uint8 algo = pk->algo; + uint8 algo; if (pk == NULL) { @@ -207,6 +207,8 @@ pgp_write_pubenc_sesskey(PGP_Context *ctx, PushFilter *dst) return PXE_BUG; } + algo = pk->algo; + /* * now write packet */ -- 1.7.3.1
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers