From 7ea38f045dad6bbb7fbe807f2486df7370bc0b0f Mon Sep 17 00:00:00 2001 From: Michael Meskes Date: Wed, 30 Jan 2019 13:58:25 +0100 Subject: Change error handling of out of scope variables in ecpg. The function called can result in an out of memory error that subsequently was disregarded. Instead it should set the appropriate SQL error variables and be checked by whatever whenever statement is defined. --- src/interfaces/ecpg/ecpglib/misc.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/interfaces/ecpg/ecpglib/misc.c') diff --git a/src/interfaces/ecpg/ecpglib/misc.c b/src/interfaces/ecpg/ecpglib/misc.c index a26dfdb361f..ee0d3e98fb9 100644 --- a/src/interfaces/ecpg/ecpglib/misc.c +++ b/src/interfaces/ecpg/ecpglib/misc.c @@ -525,6 +525,17 @@ ECPGset_var(int number, void *pointer, int lineno) { struct var_list *ptr; + struct sqlca_t *sqlca = ECPGget_sqlca(); + + if (sqlca == NULL) + { + ecpg_raise(lineno, ECPG_OUT_OF_MEMORY, + ECPG_SQLSTATE_ECPG_OUT_OF_MEMORY, NULL); + return; + } + + ecpg_init_sqlca(sqlca); + for (ptr = ivlist; ptr != NULL; ptr = ptr->next) { if (ptr->number == number) -- cgit v1.2.3