summaryrefslogtreecommitdiff
path: root/scp.c
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@zip.com.au>2005-11-22 19:38:06 +1100
committerDarren Tucker <dtucker@zip.com.au>2005-11-22 19:38:06 +1100
commit33f86bc2843b23c89f1b40e4250ced5b84e4c141 (patch)
tree6a3d0c2343298ad737495bc8731005c4400e2d15 /scp.c
parentb736d8d8292cd2222e6ad37518d562026d87f1dd (diff)
- deraadt@cvs.openbsd.org 2005/11/12 18:38:15
[scp.c] avoid close(-1), as in rcp; ok cloder
Diffstat (limited to 'scp.c')
-rw-r--r--scp.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/scp.c b/scp.c
index 58c00442f..59285abca 100644
--- a/scp.c
+++ b/scp.c
@@ -71,7 +71,7 @@
71 */ 71 */
72 72
73#include "includes.h" 73#include "includes.h"
74RCSID("$OpenBSD: scp.c,v 1.126 2005/09/13 23:40:07 djm Exp $"); 74RCSID("$OpenBSD: scp.c,v 1.127 2005/11/12 18:38:15 deraadt Exp $");
75 75
76#include "xmalloc.h" 76#include "xmalloc.h"
77#include "atomicio.h" 77#include "atomicio.h"
@@ -571,7 +571,10 @@ syserr: run_err("%s: %s", name, strerror(errno));
571 if (response() < 0) 571 if (response() < 0)
572 goto next; 572 goto next;
573 if ((bp = allocbuf(&buffer, fd, 2048)) == NULL) { 573 if ((bp = allocbuf(&buffer, fd, 2048)) == NULL) {
574next: (void) close(fd); 574next: if (fd != -1) {
575 (void) close(fd);
576 fd = -1;
577 }
575 continue; 578 continue;
576 } 579 }
577 if (showprogress) 580 if (showprogress)
@@ -600,8 +603,11 @@ next: (void) close(fd);
600 if (showprogress) 603 if (showprogress)
601 stop_progress_meter(); 604 stop_progress_meter();
602 605
603 if (close(fd) < 0 && !haderr) 606 if (fd != -1) {
604 haderr = errno; 607 if (close(fd) < 0 && !haderr)
608 haderr = errno;
609 fd = -1;
610 }
605 if (!haderr) 611 if (!haderr)
606 (void) atomicio(vwrite, remout, "", 1); 612 (void) atomicio(vwrite, remout, "", 1);
607 else 613 else