@@ -93,6 +93,13 @@ ECPGget_desc_header(int lineno, const char *desc_name, int *count)
9393 PGresult * ECPGresult ;
9494 struct sqlca_t * sqlca = ECPGget_sqlca ();
9595
96+ if (sqlca == NULL )
97+ {
98+ ecpg_raise (lineno , ECPG_OUT_OF_MEMORY ,
99+ ECPG_SQLSTATE_ECPG_OUT_OF_MEMORY , NULL );
100+ return false;
101+ }
102+
96103 ecpg_init_sqlca (sqlca );
97104 ECPGresult = ecpg_result_by_descriptor (lineno , desc_name );
98105 if (!ECPGresult )
@@ -245,6 +252,13 @@ ECPGget_desc(int lineno, const char *desc_name, int index,...)
245252 struct variable data_var ;
246253 struct sqlca_t * sqlca = ECPGget_sqlca ();
247254
255+ if (sqlca == NULL )
256+ {
257+ ecpg_raise (lineno , ECPG_OUT_OF_MEMORY ,
258+ ECPG_SQLSTATE_ECPG_OUT_OF_MEMORY , NULL );
259+ return false;
260+ }
261+
248262 va_start (args , index );
249263 ecpg_init_sqlca (sqlca );
250264 ECPGresult = ecpg_result_by_descriptor (lineno , desc_name );
@@ -701,6 +715,13 @@ ECPGdeallocate_desc(int line, const char *name)
701715 struct descriptor * prev ;
702716 struct sqlca_t * sqlca = ECPGget_sqlca ();
703717
718+ if (sqlca == NULL )
719+ {
720+ ecpg_raise (line , ECPG_OUT_OF_MEMORY ,
721+ ECPG_SQLSTATE_ECPG_OUT_OF_MEMORY , NULL );
722+ return false;
723+ }
724+
704725 ecpg_init_sqlca (sqlca );
705726 for (desc = get_descriptors (), prev = NULL ; desc ; prev = desc , desc = desc -> next )
706727 {
@@ -740,6 +761,13 @@ ECPGallocate_desc(int line, const char *name)
740761 struct descriptor * new ;
741762 struct sqlca_t * sqlca = ECPGget_sqlca ();
742763
764+ if (sqlca == NULL )
765+ {
766+ ecpg_raise (line , ECPG_OUT_OF_MEMORY ,
767+ ECPG_SQLSTATE_ECPG_OUT_OF_MEMORY , NULL );
768+ return false;
769+ }
770+
743771 ecpg_init_sqlca (sqlca );
744772 new = (struct descriptor * ) ecpg_alloc (sizeof (struct descriptor ), line );
745773 if (!new )
0 commit comments