mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-11-28 02:32:47 +00:00
Check if pthread_create(3) successfully created the thread prior to call
pthread_join(3). The variable tid is not yet initialized in case the authentication fails at early stage, that would lead pthread_join be called with an uninitialized variable. CID: 1375950 Reported by: Coverity, cem Reviewed by: cem MFC after: 3 weeks. Sponsored by: iXsystems, Inc. Differential Revision: https://reviews.freebsd.org/D11150
This commit is contained in:
parent
da150e22ac
commit
daaa9bf1df
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=319995
@ -769,6 +769,7 @@ rfb_handle(struct rfb_softc *rc, int cfd)
|
||||
pthread_t tid;
|
||||
uint32_t sres = 0;
|
||||
int len;
|
||||
int perror = 1;
|
||||
|
||||
rc->cfd = cfd;
|
||||
|
||||
@ -878,8 +879,9 @@ rfb_handle(struct rfb_softc *rc, int cfd)
|
||||
|
||||
rfb_send_screen(rc, cfd, 1);
|
||||
|
||||
pthread_create(&tid, NULL, rfb_wr_thr, rc);
|
||||
pthread_set_name_np(tid, "rfbout");
|
||||
perror = pthread_create(&tid, NULL, rfb_wr_thr, rc);
|
||||
if (perror == 0)
|
||||
pthread_set_name_np(tid, "rfbout");
|
||||
|
||||
/* Now read in client requests. 1st byte identifies type */
|
||||
for (;;) {
|
||||
@ -915,7 +917,8 @@ rfb_handle(struct rfb_softc *rc, int cfd)
|
||||
}
|
||||
done:
|
||||
rc->cfd = -1;
|
||||
pthread_join(tid, NULL);
|
||||
if (perror == 0)
|
||||
pthread_join(tid, NULL);
|
||||
if (rc->enc_zlib_ok)
|
||||
deflateEnd(&rc->zstream);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user