-/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/type.c,v 1.80 2008/11/26 13:18:22 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/type.c,v 1.81 2008/11/26 15:35:30 meskes Exp $ */
#include "postgres_fe.h"
{
char *variable = (char *) mm_alloc(strlen(name) + ((prefix == NULL) ? 0 : strlen(prefix)) + 4);
char *offset = (char *) mm_alloc(strlen(name) + strlen("sizeof(struct varchar_)") + 1 + strlen(varcharsize) + sizeof(int) * CHAR_BIT * 10 / 3);
- char *var_name;
+ char *var_name, *ptr;
switch (type)
{
sprintf(variable, "&(%s%s)", prefix ? prefix : "", name);
/* remove trailing [] is name is array element */
- var_name = strdup(name);
- *(strchrnul(var_name, '[')) = '\0';
+ var_name = mm_strdup(name);
+ ptr = strchr(var_name, '[');
+ if (ptr) *ptr = '\0';
if (lineno)
sprintf(offset, "sizeof(struct varchar_%s_%d)", var_name, lineno);
else