1- /* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/type.c,v 1.80 2008/11/2613:18:22 meskes Exp $ */
1+ /* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/type.c,v 1.81 2008/11/2615:35:30 meskes Exp $ */
22
33#include "postgres_fe.h"
44
@@ -329,7 +329,7 @@ ECPGdump_a_simple(FILE *o, const char *name, enum ECPGttype type,
329329{
330330char * variable = (char * )mm_alloc (strlen (name )+ ((prefix == NULL ) ?0 :strlen (prefix ))+ 4 );
331331char * offset = (char * )mm_alloc (strlen (name )+ strlen ("sizeof(struct varchar_)" )+ 1 + strlen (varcharsize )+ sizeof (int )* CHAR_BIT * 10 /3 );
332- char * var_name ;
332+ char * var_name , * ptr ;
333333
334334switch (type )
335335{
@@ -352,8 +352,9 @@ ECPGdump_a_simple(FILE *o, const char *name, enum ECPGttype type,
352352sprintf (variable ,"&(%s%s)" ,prefix ?prefix :"" ,name );
353353
354354/* remove trailing [] is name is array element */
355- var_name = strdup (name );
356- * (strchrnul (var_name ,'[' ))= '\0' ;
355+ var_name = mm_strdup (name );
356+ ptr = strchr (var_name ,'[' );
357+ if (ptr )* ptr = '\0' ;
357358if (lineno )
358359sprintf (offset ,"sizeof(struct varchar_%s_%d)" ,var_name ,lineno );
359360else