From b7d565159683a5071e4aa687a2789400557b41fc Mon Sep 17 00:00:00 2001
From: charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri, 17 Feb 2006 16:07:10 +0000
Subject: [PATCH] 2006-02-17  Robert Dewar  <dewar@adacore.com>

	* g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
	then we close To if it is valid.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111188 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ada/g-os_lib.adb | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/gcc/ada/g-os_lib.adb b/gcc/ada/g-os_lib.adb
index dbfc6b917453..c1efa0390929 100644
--- a/gcc/ada/g-os_lib.adb
+++ b/gcc/ada/g-os_lib.adb
@@ -384,7 +384,14 @@ package body GNAT.OS_Lib is
          procedure Free is new Unchecked_Deallocation (Buf, Buf_Ptr);
 
       begin
+         --  Check for invalid descriptors, making sure that we do not
+         --  accidentally leave an open file descriptor around.
+
          if From = Invalid_FD then
+            if To /= Invalid_FD then
+               Close (To, Status_To);
+            end if;
+
             raise Copy_Error;
 
          elsif To = Invalid_FD then
-- 
GitLab