View Single Post

   
  #1 (permalink)  
Old 04-19-2008, 06:25 AM
Zdenek Kotala
 
Posts: n/a
Default Remove FATAL from pg_lzdecompress


I attach patch which adds boundaries check and memory overwriting
protection when compressed data are corrupted.

Current behavior let code overwrite a memory and after that check if
unpacked size is same as expected value. In this case elog execution
fails (at least on Solaris - malloc has corrupted structures) and no
message appears in a log file.

I did not add any extra information into the message. Reasonable
solution seems to be use errcontext how was recommended by Alvaro. But I
'm not sure if printtup is good place for it, because pg_detoast is
called from many places. However, is can be solved in separate patch.

I'm also think that this modification should be backported to other
version too.

Thanks Zdenek


---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply With Quote