Hi PG_RETURN_TEXT_P works well. I made beginer error. I allocated memory by palloc and before PG_RETURN_TEXT_P deallocated by SPI_finish. After change SPI_palloc between palloc my function works.
Thank you Pavel On Tue, 12 Nov 2002, Pavel Stehule wrote: > You have true. When I modify code on > > long ma = ((*saved_chars + l + VARHDRSZ) / page_size + 1) * page_size; > *allocated_free = ma - *saved_chars - VARHDRSZ; > > my function works well. Thank you wery much. One night I lost with this > :-> > > On Tue, 12 Nov 2002, Tom Lane wrote: > > > Pavel Stehule <[EMAIL PROTECTED]> writes: > > > I found some problem with PG_RETURN_TEXT_P. > > > > Fix your code to not scribble on memory that doesn't belong to it, > > and all will be well. I can see at least two buffer-overrun bugs, > > and there may be more: > > > > txtn = (text *) palloc (ma); -- forgot to add VARHDRSZ > > > > strcpy (*str_pointer, str); -- copies one byte too many > > > > regards, tom lane > > > > ---------------------------(end of broadcast)--------------------------- > > TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED] > > > > > ---------------------------(end of broadcast)--------------------------- > TIP 3: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to [EMAIL PROTECTED] so that your > message can get through to the mailing list cleanly > ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/users-lounge/docs/faq.html