Back porting coverity issues fix patch from master branch.
authorMuhammad Usama <m.usama@gmail.com>
Mon, 28 Jul 2014 12:50:21 +0000 (17:50 +0500)
committerMuhammad Usama <m.usama@gmail.com>
Mon, 28 Jul 2014 12:50:21 +0000 (17:50 +0500)
Fix coverity issue:1111394 Dereference after null check
Fix coverity issue:1111398 Dereference after null check
Fix coverity issue:1111399 Explicit null dereferenced
Fix coverity issue:1111400 Dereference after null check
Fix coverity issue:1111401 Explicit null dereferenced

pool_process_query.c
pool_rewrite_outfuncs.c
pool_rewrite_query.c

index 9e4358d685ed3006d05a22c4472d643f5ccdd1c1..b381bdba5e0db73e1e1929481f7f723d40922e34 100644 (file)
@@ -3581,7 +3581,7 @@ static char *get_insert_command_table_name(InsertStmt *node)
 /* judge if this is a DROP DATABASE command */
 int is_drop_database(Node *node)
 {
-       return (IsA(node, DropdbStmt)) ? 1 : 0;
+       return (node && IsA(node, DropdbStmt)) ? 1 : 0;
 }
 
 /*
@@ -3816,14 +3816,16 @@ POOL_STATUS read_kind_from_backend(POOL_CONNECTION *frontend, POOL_CONNECTION_PO
                                }
                                len = htonl(len) - 4;
                                p = pool_read2(CONNECTION(backend, i), len);
-                               if (p == NULL)
+                               if (p)
                                {
-                                       pool_error("read_kind_from_backend: failed to read parameter status packet from %d th backend", i);
+                                       value = p + strlen(p) + 1;
+                                       pool_debug("read_kind_from_backend: parameter name: %s value: %s", p, value);
+                                       if (IS_MASTER_NODE_ID(i))
+                                               pool_add_param(&CONNECTION(backend, i)->params, p, value);
                                }
-                               value = p + strlen(p) + 1;
-                               pool_debug("read_kind_from_backend: parameter name: %s value: %s", p, value);
-                               if (IS_MASTER_NODE_ID(i))
-                                       pool_add_param(&CONNECTION(backend, i)->params, p, value);
+                               else
+                                       pool_error("read_kind_from_backend: failed to read parameter status packet from %d th backend", i);
+
                        } while (kind == 'S');
 
 #ifdef DEALLOCATE_ERROR_TEST
index 7de4f358cabcdb4a72e22bb428e3965aea57b777..bb0632f18d20de1e06e519312e30f6ace1aded76 100644 (file)
@@ -5136,7 +5136,7 @@ _rewriteColumnRef(Node *BaseSelect, RewriteQuery *message, ConInfoTodblink *dbli
        List *list;
        char first = 0;
        char *table_name = NULL;
-  char *column_name = NULL;
+       char *column_name = "";
 
        if(CheckAggOpt(message))
        {
index 8f8070b1c7787696cad68917d636b76b3971ad66..2ee6d4556caaaa9d140c9049081d5bf7ac813ebf 100644 (file)
@@ -167,7 +167,7 @@ static void examInsertStmt(Node *node,POOL_CONNECTION_POOL *backend, RewriteQuer
                return;
        }
 
-       list_t = (List *)(((SelectStmt *)insert->selectStmt)->valuesLists);
+       list_t = insert->selectStmt ? (List *)(((SelectStmt *)insert->selectStmt)->valuesLists) : NULL;
 
        if (!list_t)
        {