postgres.git / summary / log / commit / refs

commit    980c24e1e80223ccd70e50d9d64c2b38cf50879e
Author:   Alvaro Herrera <alvherre@alvh.no-ip.org>
Date:     Tue Jul 23 21:38:32 2013 +0000
First released in: 9.4.0, 8.4.18, 9.0.14, 9.1.10, 9.2.5, 9.3.0

    Check for NULL result from strdup
    
    Per Coverity Scan


src/interfaces/libpq/fe-secure.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/interfaces/libpq/fe-secure.c b/src/interfaces/libpq/fe-secure.c index b1ad776a234..30182958a1d 100644 --- a/src/interfaces/libpq/fe-secure.c +++ b/src/interfaces/libpq/fe-secure.c @@ -1132,7 +1132,17 @@ initialize_SSL(PGconn *conn) { /* 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 */ [parent: 5fbc3130b3fe]