Rafael Martinez wrote:
> Edwin Quijada wrote:
> 
>> ERROR:  invalid memory alloc request size 4294967293
>>
>>
> [......]
>>   text *new_t = (text *) palloc(LENMAX);
>>
> [......]
>>   memcpy(VARDATA(new_t),buf,strlen(buf)); 
> 
> Hola
> 
> Asignas/reservas el espacio a usar por new_t con palloc(40) y despues
> intentas copiar los datos en buf[BUFSIZ] a este espacio.
> 
> ¿Que valor tiene BUFSIZ?, probablemente mayor que 40, con lo que no
> tienes suficiente memoria asignada/reservada para copiar buf en new_t.
> 

Pensandolo mejor, creo que tambien deberias de hacer esto:

SET_VARSIZE(new_t, strlen(buf) + VARHDRSZ);

antes de ejecutar el memcpy(). Por supuesto el espacio asignado a new_t
no puede ser menor que el usado por buf.


-- 
 Rafael Martinez, <r.m.guerr...@usit.uio.no>
 Center for Information Technology Services
 University of Oslo, Norway

 PGP Public Key: http://folk.uio.no/rafael/
--
TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
               http://archives.postgresql.org/pgsql-es-ayuda

Responder a