id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,field_blocks,field_dependson,field_seealso 605,PREEMPTIBLE_HANDLER_KERNEL needs to spill uspace windows to uspace wbuf,Jakub Jermář,Jakub Jermář,"PREEMPTIBLE_HANDLER_KERNEL checks the value of the CANSAVE register to see whether the imminent SAVE instruction would generate a window spill trap or not. If CANSAVE is zero, it uses the INLINE_SPILL macro to spill a register window without generating the spill trap. INLINE_SPILL assumes a kernel window, but it is also possible to have a uspace window at this point. In this case, INLINE_SPILL will wrongly interpret the window's uspace stack address as a kernel stack address, leading to a random memory corruption. It is therefore necessary to also check the value in the OTHERWIN register to see whether the spilled window would be a uspace window. In such case, INLINE_SPILL_TO_WBUF needs to be used instead of INLINE_SPILL to spill the uspace window to the uspace window buffer.",defect,closed,major,0.7.0,helenos/kernel/sparc64,mainline,fixed,sun4v,rimskyp@…,,,