diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-02-17 16:07:10 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-02-17 16:07:10 +0000 |
commit | b7d565159683a5071e4aa687a2789400557b41fc (patch) | |
tree | 804e9e64b2a5e7fe5ad8d29faf2e4a2b96cb5ae0 /gcc | |
parent | d251bf503c380e6bcf7ac566b71ba7052b6952e3 (diff) | |
download | gcc-b7d565159683a5071e4aa687a2789400557b41fc.tar.gz |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/g-os_lib.adb | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ada/g-os_lib.adb b/gcc/ada/g-os_lib.adb index dbfc6b91745..c1efa039092 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 |