aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlvaro Herrera <alvherre@alvh.no-ip.org>2013-07-23 17:38:31 -0400
committerAlvaro Herrera <alvherre@alvh.no-ip.org>2013-07-23 17:38:31 -0400
commit0883c85334f80ff9cc54607aac508618f871c82c (patch)
treeb7aa525343dbd7ec0ddfc564bb33b8010ffc090f /src
parenta8d59a9e68c883a622cb025cd87bcdd87ea709e9 (diff)
downloadpostgresql-0883c85334f80ff9cc54607aac508618f871c82c.tar.gz
postgresql-0883c85334f80ff9cc54607aac508618f871c82c.zip
Check for NULL result from strdup
Per Coverity Scan
Diffstat (limited to 'src')
-rw-r--r--src/interfaces/libpq/fe-secure.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/interfaces/libpq/fe-secure.c b/src/interfaces/libpq/fe-secure.c
index f5328e4c94a..847f2721dd8 100644
--- a/src/interfaces/libpq/fe-secure.c
+++ b/src/interfaces/libpq/fe-secure.c
@@ -875,7 +875,17 @@ client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY **pkey)
{
/* Colon, but not in second character, treat as engine:key */
char *engine_str = strdup(conn->sslkey);
- char *engine_colon = strchr(engine_str, ':');
+ char *engine_colon;
+
+ if (engine_str == NULL)
+ {
+ printfPQExpBuffer(&conn->errorMessage,
+ libpq_gettext("out of memory\n"));
+ return -1;
+ }
+
+ /* cannot return NULL because we already checked before strdup */
+ engine_colon = strchr(engine_str, ':');
*engine_colon = '\0'; /* engine_str now has engine name */
engine_colon++; /* engine_colon now has key name */