client_post_select(): Defer decrypting of server challenge.
authorAndre Noll <maan@systemlinux.org>
Sun, 19 Jul 2009 01:10:34 +0000 (03:10 +0200)
committerAndre Noll <maan@systemlinux.org>
Sun, 19 Jul 2009 01:10:34 +0000 (03:10 +0200)
commit8ab0d98297cb18d5bb12b71648bb34310141ef1c
tree604adb157f640b2b28ca6cd7c6d3ccabb32eec10
parent78027d5e82b04a2d04a29cab247c895cd7cf9e71
client_post_select(): Defer decrypting of server challenge.

The old code worked only by pure luck: We allocated the crypt buffer on the stack as
an ordinary automatic variable. This buffer was filled right after we received the challenge
from the server, but it was used in a _subsequent_ call to client_post_select(). There's
no guarantee that the content of the crypt buffer stays the same between these two calls.

So defer the decryption until the client status is CL_RECEIVED_CHALLENGE, i.e. until
the socket file descriptor is known to be ready for sending back the SHA1 of the decrypted
challenge.
client_common.c