Use stream_read() to read all 12 bytes of the RFB client version.
read() can return a short read, whereas stream_read() waits until the full version string is read. Submitted by: Ka Ho Ng <khng300_gmail.com> Reviewed by: grehan MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D23591
This commit is contained in:
parent
1a17c683b2
commit
fa7455e7a3
@ -76,6 +76,7 @@ static int rfb_debug = 0;
|
||||
#define DPRINTF(params) if (rfb_debug) PRINTLN params
|
||||
#define WPRINTF(params) PRINTLN params
|
||||
|
||||
#define VERSION_LENGTH 12
|
||||
#define AUTH_LENGTH 16
|
||||
#define PASSWD_LENGTH 8
|
||||
|
||||
@ -769,7 +770,7 @@ rfb_handle(struct rfb_softc *rc, int cfd)
|
||||
stream_write(cfd, vbuf, strlen(vbuf));
|
||||
|
||||
/* 1b. Read client version */
|
||||
len = read(cfd, buf, sizeof(buf));
|
||||
len = stream_read(cfd, buf, VERSION_LENGTH);
|
||||
|
||||
/* 2a. Send security type */
|
||||
buf[0] = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user