1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-30 11:03:19 +03:00

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>
This commit is contained in:
Michael Meskes
2015-02-05 15:12:34 +01:00
parent d88976cfa1
commit 5ee5bc3873
4 changed files with 27 additions and 11 deletions

View File

@ -398,11 +398,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 */
@ -410,11 +409,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) */