]> granicus.if.org Git - postgresql/commitdiff
Check for NULL result from strdup
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 23 Jul 2013 21:38:32 +0000 (17:38 -0400)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 23 Jul 2013 21:38:32 +0000 (17:38 -0400)
Per Coverity Scan

src/interfaces/libpq/fe-secure.c

index 174cf426f06f3d00c4849c605c164e56b6a7b111..a6a09cd1ab2de5cec54db2fb6aeb0670b02cc286 100644 (file)
@@ -1131,7 +1131,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 */