summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortb@openbsd.org <tb@openbsd.org>2018-02-05 05:37:46 +0000
committerDarren Tucker <dtucker@dtucker.net>2018-02-07 07:50:46 +1100
commit3484380110d437c50e17f87d18544286328c75cb (patch)
tree15496664aa5eea31f3791f3791147243b726e304
parent5069320be93c8b2a6584b9f944c86f60c2b04e48 (diff)
upstream commit
Add a couple of non-negativity checks to avoid close(-1). ok djm OpenBSD-Commit-ID: 4701ce0b37161c891c838d0931305f1d37a50880
-rw-r--r--monitor.c14
-rw-r--r--ssh-pkcs11-client.c5
2 files changed, 12 insertions, 7 deletions
diff --git a/monitor.c b/monitor.c
index 89c8c958a..e4ac3ccfd 100644
--- a/monitor.c
+++ b/monitor.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: monitor.c,v 1.178 2018/01/23 05:27:21 djm Exp $ */ 1/* $OpenBSD: monitor.c,v 1.179 2018/02/05 05:37:46 tb Exp $ */
2/* 2/*
3 * Copyright 2002 Niels Provos <provos@citi.umich.edu> 3 * Copyright 2002 Niels Provos <provos@citi.umich.edu>
4 * Copyright 2002 Markus Friedl <markus@openbsd.org> 4 * Copyright 2002 Markus Friedl <markus@openbsd.org>
@@ -289,8 +289,10 @@ monitor_child_preauth(Authctxt *_authctxt, struct monitor *pmonitor)
289 289
290 debug3("preauth child monitor started"); 290 debug3("preauth child monitor started");
291 291
292 close(pmonitor->m_recvfd); 292 if (pmonitor->m_recvfd >= 0)
293 close(pmonitor->m_log_sendfd); 293 close(pmonitor->m_recvfd);
294 if (pmonitor->m_log_sendfd >= 0)
295 close(pmonitor->m_log_sendfd);
294 pmonitor->m_log_sendfd = pmonitor->m_recvfd = -1; 296 pmonitor->m_log_sendfd = pmonitor->m_recvfd = -1;
295 297
296 authctxt = _authctxt; 298 authctxt = _authctxt;
@@ -371,8 +373,10 @@ monitor_child_preauth(Authctxt *_authctxt, struct monitor *pmonitor)
371 while (pmonitor->m_log_recvfd != -1 && monitor_read_log(pmonitor) == 0) 373 while (pmonitor->m_log_recvfd != -1 && monitor_read_log(pmonitor) == 0)
372 ; 374 ;
373 375
374 close(pmonitor->m_sendfd); 376 if (pmonitor->m_recvfd >= 0)
375 close(pmonitor->m_log_recvfd); 377 close(pmonitor->m_recvfd);
378 if (pmonitor->m_log_sendfd >= 0)
379 close(pmonitor->m_log_sendfd);
376 pmonitor->m_sendfd = pmonitor->m_log_recvfd = -1; 380 pmonitor->m_sendfd = pmonitor->m_log_recvfd = -1;
377} 381}
378 382
diff --git a/ssh-pkcs11-client.c b/ssh-pkcs11-client.c
index a79c87210..fc7582827 100644
--- a/ssh-pkcs11-client.c
+++ b/ssh-pkcs11-client.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssh-pkcs11-client.c,v 1.7 2017/05/30 08:52:19 markus Exp $ */ 1/* $OpenBSD: ssh-pkcs11-client.c,v 1.8 2018/02/05 05:37:46 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2010 Markus Friedl. All rights reserved. 3 * Copyright (c) 2010 Markus Friedl. All rights reserved.
4 * 4 *
@@ -99,7 +99,8 @@ pkcs11_init(int interactive)
99void 99void
100pkcs11_terminate(void) 100pkcs11_terminate(void)
101{ 101{
102 close(fd); 102 if (fd >= 0)
103 close(fd);
103} 104}
104 105
105static int 106static int