On 10/30/26 09:42, Erik Huelsmann wrote: > Hi Michal, > > > When I wrote Sys::Async::Virt 2 years ago, I extensively studied the > SASL code in libvirt. > > At the time, I thought I saw patters where the following sequence > might be going on: INIT -> START -> STEP -> START > > The second START would be issued after setting up the correct > authentication data after an authentication had been challenged. Do > you see the same pattern? If so, then the second START will already > have the "started" boolean set to true, even when it hasn't. Using a > state machine with a single "state" variable would prevent that. >
Ah, if that's the case then my patch is incorrect, though the only thing needed is to drop some checks to allow START after STEP again. I have not seen that in my testing, though. And looking into remoteAuthSASL() I don't see a way that a client could call the sequence from your example. The only sequence possible is INIT -> START [-> STEP [-> STEP ...]]. Michal
