On Sat, Oct 17, 2020 at 09:53:47AM +0200, Jona Ackerschott wrote: > Dear suckless community, >
Hi Jona, > There seems to be a bug in surf, in the 'readpipe' function in surf.c. > The pipes for communication with the web extension are being closed > there in the switch statement, which is problematic, because this function is > called every time > the web extension is initialized. > This desing seems to be chosen on the assumption that the surf web extension > will only be initialized once. > However, this is not the case and as soon as the web extension gets > initialized a second time the current page may be loading forever. > > To reproduce this bug, execute mainline surf without patches, go to > 'google.com' > (Exactly this, combinations of 'http(s)' or 'www' added to this > can change the behaviour) and then to 'twitter.com' (Again extactly this). > These sites are just one example, this also happens with other sites, > mostly pretty bloated ones. > You should see that 'twitter.com' is not loading and the error messages > 'webext: error sending: i', 'webext: message too short: %i' (where %i is > some negative integer). > There is also a variation of this bug, where you find only the first > error message and the page is loading in a finite amount of time. > > I think all this behaviour can be traced back to the fact, that the > pipes are being closed to early in readpipe, because they could be > needed again. > A fix could be to let those pipes open during runtime and only close > them in the 'cleanup' function. > At least this fixes all the problems i have talked about. > Where is the patch? > Regards, > Jona > -- Kind regards, Hiltjo