Fixed remaining Coverity bugs.
This commit is contained in:
parent
2d0c1d3102
commit
956cbeb7ef
@ -2040,5 +2040,9 @@ Mo Jun 26 16:08:23 CEST 2006
|
|||||||
|
|
||||||
- Added missing braces to prevent a segfault after usage of an
|
- Added missing braces to prevent a segfault after usage of an
|
||||||
undeclared cursor.
|
undeclared cursor.
|
||||||
|
|
||||||
|
We Jul 5 12:17:28 CEST 2006
|
||||||
|
|
||||||
|
- Fixed remaining Coverity bugs.
|
||||||
- Set ecpg library version to 5.2.
|
- Set ecpg library version to 5.2.
|
||||||
- Set ecpg version to 4.2.1.
|
- Set ecpg version to 4.2.1.
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* dynamic SQL support routines
|
/* dynamic SQL support routines
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/descriptor.c,v 1.16 2006/06/25 09:38:39 meskes Exp $
|
* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/descriptor.c,v 1.17 2006/07/05 10:49:56 meskes Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define POSTGRES_ECPG_INTERNAL
|
#define POSTGRES_ECPG_INTERNAL
|
||||||
@ -249,7 +249,7 @@ ECPGget_desc(int lineno, const char *desc_name, int index,...)
|
|||||||
data_var.ind_varcharsize = varcharsize;
|
data_var.ind_varcharsize = varcharsize;
|
||||||
data_var.ind_arrsize = arrsize;
|
data_var.ind_arrsize = arrsize;
|
||||||
data_var.ind_offset = offset;
|
data_var.ind_offset = offset;
|
||||||
if (data_var.ind_arrsize == 0 || data_var.ind_varcharsize == 0)
|
if ((data_var.ind_arrsize == 0 || data_var.ind_varcharsize == 0) && data_var.ind_pointer != NULL)
|
||||||
data_var.ind_value = *((void **) (data_var.ind_pointer));
|
data_var.ind_value = *((void **) (data_var.ind_pointer));
|
||||||
else
|
else
|
||||||
data_var.ind_value = data_var.ind_pointer;
|
data_var.ind_value = data_var.ind_pointer;
|
||||||
@ -397,7 +397,8 @@ ECPGget_desc(int lineno, const char *desc_name, int index,...)
|
|||||||
setlocale(LC_NUMERIC, oldlocale);
|
setlocale(LC_NUMERIC, oldlocale);
|
||||||
ECPGfree(oldlocale);
|
ECPGfree(oldlocale);
|
||||||
}
|
}
|
||||||
else if (data_var.ind_type != ECPGt_NO_INDICATOR)
|
else if (data_var.ind_type != ECPGt_NO_INDICATOR && data_var.ind_pointer != NULL)
|
||||||
|
/* ind_type != NO_INDICATOR should always have ind_pointer != NULL but since this might be changed manually in the .c file let's play it safe */
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* this is like ECPGstore_result but since we don't have a data
|
* this is like ECPGstore_result but since we don't have a data
|
||||||
@ -410,8 +411,9 @@ ECPGget_desc(int lineno, const char *desc_name, int index,...)
|
|||||||
ECPGraise(lineno, ECPG_TOO_MANY_MATCHES, ECPG_SQLSTATE_CARDINALITY_VIOLATION, NULL);
|
ECPGraise(lineno, ECPG_TOO_MANY_MATCHES, ECPG_SQLSTATE_CARDINALITY_VIOLATION, NULL);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* allocate storage if needed */
|
/* allocate storage if needed */
|
||||||
if (data_var.ind_arrsize == 0 && data_var.ind_pointer != NULL && data_var.ind_value == NULL)
|
if (data_var.ind_arrsize == 0 && data_var.ind_value == NULL)
|
||||||
{
|
{
|
||||||
void *mem = (void *) ECPGalloc(data_var.ind_offset * ntuples, lineno);
|
void *mem = (void *) ECPGalloc(data_var.ind_offset * ntuples, lineno);
|
||||||
if (!mem)
|
if (!mem)
|
||||||
@ -420,6 +422,7 @@ ECPGget_desc(int lineno, const char *desc_name, int index,...)
|
|||||||
ECPGadd_mem(mem, lineno);
|
ECPGadd_mem(mem, lineno);
|
||||||
data_var.ind_value = mem;
|
data_var.ind_value = mem;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (act_tuple = 0; act_tuple < ntuples; act_tuple++)
|
for (act_tuple = 0; act_tuple < ntuples; act_tuple++)
|
||||||
{
|
{
|
||||||
if (!get_int_item(lineno, data_var.ind_value, data_var.ind_type, -PQgetisnull(ECPGresult, act_tuple, index)))
|
if (!get_int_item(lineno, data_var.ind_value, data_var.ind_type, -PQgetisnull(ECPGresult, act_tuple, index)))
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.50 2006/06/26 09:20:09 meskes Exp $ */
|
/* $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/execute.c,v 1.51 2006/07/05 10:49:56 meskes Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The aim is to get a simpler inteface to the database routines.
|
* The aim is to get a simpler inteface to the database routines.
|
||||||
@ -876,12 +876,13 @@ ECPGstore_input(const int lineno, const bool force_indicator, const struct varia
|
|||||||
{
|
{
|
||||||
char *str = NULL;
|
char *str = NULL;
|
||||||
int slen;
|
int slen;
|
||||||
numeric *nval = PGTYPESnumeric_new();
|
numeric *nval;
|
||||||
|
|
||||||
if (var->arrsize > 1)
|
if (var->arrsize > 1)
|
||||||
{
|
{
|
||||||
for (element = 0; element < var->arrsize; element++, nval = PGTYPESnumeric_new())
|
for (element = 0; element < var->arrsize; element++)
|
||||||
{
|
{
|
||||||
|
nval = PGTYPESnumeric_new();
|
||||||
if (!nval)
|
if (!nval)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@ -911,6 +912,7 @@ ECPGstore_input(const int lineno, const bool force_indicator, const struct varia
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
nval = PGTYPESnumeric_new();
|
||||||
if (!nval)
|
if (!nval)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@ -1048,16 +1050,22 @@ ECPGstore_input(const int lineno, const bool force_indicator, const struct varia
|
|||||||
|
|
||||||
case ECPGt_timestamp:
|
case ECPGt_timestamp:
|
||||||
{
|
{
|
||||||
char *str = NULL;
|
char *str = NULL, *asc = NULL;
|
||||||
int slen;
|
int slen;
|
||||||
|
|
||||||
if (var->arrsize > 1)
|
if (var->arrsize > 1)
|
||||||
{
|
{
|
||||||
for (element = 0; element < var->arrsize; element++)
|
for (element = 0; element < var->arrsize; element++)
|
||||||
{
|
{
|
||||||
str = quote_postgres(PGTYPEStimestamp_to_asc(*(timestamp *) ((var + var->offset * element)->value)), lineno);
|
asc = PGTYPEStimestamp_to_asc(*(timestamp *) ((var + var->offset * element)->value));
|
||||||
|
if (!asc)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
str = quote_postgres(asc, lineno);
|
||||||
|
ECPGfree(asc); /* we don't need this anymore so free it asap. */
|
||||||
if (!str)
|
if (!str)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
slen = strlen(str);
|
slen = strlen(str);
|
||||||
|
|
||||||
if (!(mallocedval = ECPGrealloc(mallocedval, strlen(mallocedval) + slen + sizeof("array [], timestamp "), lineno)))
|
if (!(mallocedval = ECPGrealloc(mallocedval, strlen(mallocedval) + slen + sizeof("array [], timestamp "), lineno)))
|
||||||
@ -1077,7 +1085,12 @@ ECPGstore_input(const int lineno, const bool force_indicator, const struct varia
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
str = quote_postgres(PGTYPEStimestamp_to_asc(*(timestamp *) (var->value)), lineno);
|
asc = PGTYPEStimestamp_to_asc(*(timestamp *) (var->value));
|
||||||
|
if (!asc)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
str = quote_postgres(asc, lineno);
|
||||||
|
ECPGfree(asc); /* we don't need this anymore so free it asap. */
|
||||||
if (!str)
|
if (!str)
|
||||||
return false;
|
return false;
|
||||||
slen = strlen(str);
|
slen = strlen(str);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user