Closed purejava closed 2 years ago
I dug into the transferred bytes. KeePassXC sends messages one by one, but the keepassxc-proxy-access side of the socket has no info about the length of a message transferred and so depends on reading what is transferred over the socket.
Reading is done with a ByteBuffer, so in case KeePassXC sends a lot of messages at once, this leads to appended messsages for one read operation on the reading side.
This behaviour of KeePassXC violates the keepassxc-browser protocol, so in the end there is no sense in splitting up the messages and processing them separately.
Instead, this case needs to be treated as an error and handled accordingly. This is implemented by 1fa01c600763d9e7bcac4ffd1df90eab5e1fc74c.
Please agree to the following
Summary
In case multiple messages are returned at once by the KeePassXC proxy, keepassxc-proxy-access does not distinguish clearly between them
What software is involved?
Steps to Reproduce
generate-password
request and press Apply password in the KeePassXC password generator popupExpected Behavior
keepassxc-proxy-access should process each returned message separately
Actual Behavior
keepassxc-proxy-access does not distinguish clearly between the returned messages, reads two or more messages at once and processes these as one message
Reproducibility
Intermittent
Relevant Log Output
Anything else?
This is also discussed upstream.