Plan 9 from Bell Labs’s /usr/web/sources/patch/applied/rio-b3menu-hidden-dies/readme

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


Rio dies when user selects last hidden window in button3menu if the window gets deleted underneath (say, the last process exits).

How to reproduce:

 •	draw a new window
 •	run: echo hide >/dev/wctl; sleep 5; exit
 •	within 5 seconds, depress and hold mouse button 3 for at least 5 seconds
 •	select the just-hidden window — rio dies in:

	acid: lstk()
	wunhide(h=0x0)+0x30 /sys/src/cmd/rio/rio.c:1100
		w=0x710d0
		i=0x0
	unhide(h=0x6)+0x27 /sys/src/cmd/rio/rio.c:1130
	button3menu()+0x97 /sys/src/cmd/rio/rio.c:687
	mousethread()+0x2c4 /sys/src/cmd/rio/rio.c:589
		sending=0x0
		scrolling=0x0
		moving=0x0
		winput=0x0
		xy=0x298
		inside=0x0
		tmp=0xfefefefe
		w=0x0
		oin=0xfefefefe
		band=0xfefefefe
		r=0xfefefefe
	launcher386(arg=0x0,f=0x1f0c)+0x10 /sys/src/libthread/386.c:10
	0xfefefefe ?file?:0

What's fixed:

This patch makes /sys/src/cmd/rio/wind.c:/^wclosewin to zero out the just-freed space in hidden[].

- Iaroslav

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.