The function returns false if it fails to allocate memory, so
make sure to check the return value in callsites.
Author: Aleksander Alekseev <
[email protected]>
Reviewed-by: Daniel Gustafsson <[email protected]>
Discussion: https://postgr.es/m/CAJ7c6TNPrU8ZxgdfN3PyGY1tzo0bgszx+KkqW0Z7zt3heyC1GQ@mail.gmail.com
stmt->inlist = stmt->outlist = NULL;
/* if we have C variables in our statement replace them with '?' */
- replace_variables(&(stmt->command), lineno);
+ if (!replace_variables(&(stmt->command), lineno))
+ {
+ ecpg_free(stmt->command);
+ ecpg_free(stmt);
+ ecpg_free(this);
+ return false;
+ }
/* add prepared statement to our list */
this->name = ecpg_strdup(name, lineno, NULL);