summaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/ecpglib/execute.c
diff options
context:
space:
mode:
authorMichael Meskes <meskes@postgresql.org>2015-02-05 15:12:34 +0100
committerMichael Meskes <meskes@postgresql.org>2015-08-12 13:56:57 +0200
commited089d2fec8dde61d169f1f67a96e099425e77c7 (patch)
treeae3e1560241043b826891c8007c8c8f54d8a9d73 /src/interfaces/ecpg/ecpglib/execute.c
parenta54875602a057f8ee0cf5e880bfe2056b5dd11f0 (diff)
This routine was calling ecpg_alloc to allocate to memory but did not
actually check the returned pointer allocated, potentially NULL which could be the result of a malloc call. Issue noted by Coverity, fixed by Michael Paquier <michael@otacoo.com>
Diffstat (limited to 'src/interfaces/ecpg/ecpglib/execute.c')
-rw-r--r--src/interfaces/ecpg/ecpglib/execute.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/interfaces/ecpg/ecpglib/execute.c b/src/interfaces/ecpg/ecpglib/execute.c
index 1f62b693e3b..31ea5db6b76 100644
--- a/src/interfaces/ecpg/ecpglib/execute.c
+++ b/src/interfaces/ecpg/ecpglib/execute.c
@@ -402,11 +402,10 @@ ecpg_store_result(const PGresult *results, int act_field,
}
ecpg_log("ecpg_store_result on line %d: allocating memory for %d tuples\n", stmt->lineno, ntuples);
- var->value = (char *) ecpg_alloc(len, stmt->lineno);
+ var->value = (char *) ecpg_auto_alloc(len, stmt->lineno);
if (!var->value)
return false;
*((char **) var->pointer) = var->value;
- ecpg_add_mem(var->value, stmt->lineno);
}
/* allocate indicator variable if needed */
@@ -414,11 +413,10 @@ ecpg_store_result(const PGresult *results, int act_field,
{
int len = var->ind_offset * ntuples;
- var->ind_value = (char *) ecpg_alloc(len, stmt->lineno);
+ var->ind_value = (char *) ecpg_auto_alloc(len, stmt->lineno);
if (!var->ind_value)
return false;
*((char **) var->ind_pointer) = var->ind_value;
- ecpg_add_mem(var->ind_value, stmt->lineno);
}
/* fill the variable with the tuple(s) */