Don't leak a file descriptor.
authorRafael Espindola <rafael.espindola@gmail.com>
Wed, 25 Jun 2014 14:35:59 +0000 (14:35 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Wed, 25 Jun 2014 14:35:59 +0000 (14:35 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211699 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/Path.cpp

index 59c379871275ae4dbec5d986f44a5b08ab1197bc..d5a0ec55c682ae78d4f1ce6d6dbe017ab8ee948d 100644 (file)
@@ -1065,7 +1065,7 @@ std::error_code identify_magic(const Twine &Path, file_magic &Result) {
 
   char Buffer[32];
   int Length = read(FD, Buffer, sizeof(Buffer));
-  if (Length < 0)
+  if (close(FD) != 0 || Length < 0)
     return std::error_code(errno, std::generic_category());
 
   Result = identify_magic(StringRef(Buffer, Length));