On Mon, Apr 18, 2005 at 04:31:52PM -0500, Manuel Sugawara wrote:
Un comentario mas,
> > new = t->vl_dat;
>
> Necesitas copiar char a char la cadena (aqui ya perdiste la referencia
> a la memoria previamente allocada, therefore, memory leak!). Revisa
> memcpy(3) o strcpy(3).
No puedes usar t->vl_dat como si fuera un string C; en particular no
puedes usar strcpy(), porque los tipos varlena no son terminados en \0.
Tienes que usar memcpy(new, t->vl_dat, VARSIZE(t)) y despues poner el \0
al final.
--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"Cuando mañana llegue pelearemos segun lo que mañana exija" (Mowgli)