From: Michael Meskes Date: Fri, 23 Nov 2012 13:39:27 +0000 (+0100) Subject: Applied patch by Chen Huajun to make ecpg able to cope X-Git-Tag: REL9_3_BETA1~697 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c50b8a4637bcaab2f0e1fb69c39fdcec7e535874;p=postgresql Applied patch by Chen Huajun to make ecpg able to cope with very long structs. --- diff --git a/src/interfaces/ecpg/preproc/type.c b/src/interfaces/ecpg/preproc/type.c index c743616a6c..cf2ff15841 100644 --- a/src/interfaces/ecpg/preproc/type.c +++ b/src/interfaces/ecpg/preproc/type.c @@ -506,8 +506,8 @@ ECPGdump_a_struct(FILE *o, const char *name, const char *ind_name, char *arrsiz, */ struct ECPGstruct_member *p, *ind_p = NULL; - char pbuf[BUFSIZ], - ind_pbuf[BUFSIZ]; + char *pbuf = (char *) mm_alloc(strlen(name) + ((prefix == NULL) ? 0 : strlen(prefix)) + 3); + char *ind_pbuf = (char *) mm_alloc(strlen(ind_name) + ((ind_prefix == NULL) ? 0 : strlen(ind_prefix)) + 3); if (atoi(arrsiz) == 1) sprintf(pbuf, "%s%s.", prefix ? prefix : "", name); @@ -540,6 +540,9 @@ ECPGdump_a_struct(FILE *o, const char *name, const char *ind_name, char *arrsiz, if (ind_p != NULL && ind_p != &struct_no_indicator) ind_p = ind_p->next; } + + free(pbuf); + free(ind_pbuf); } void