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
Received on Sat Oct 17 2020 - 11:19:27 CEST