[XRay] [compiler-rt] Plug a file descriptor leak in a failure case.
authorMartin Pelikan <martin.pelikan@gmail.com>
Fri, 24 Mar 2017 05:02:51 +0000 (05:02 +0000)
committerMartin Pelikan <martin.pelikan@gmail.com>
Fri, 24 Mar 2017 05:02:51 +0000 (05:02 +0000)
Summary: Fd needs to be closed before the number gets out of scope.

Reviewers: dberris

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D31278

llvm-svn: 298685

compiler-rt/lib/xray/xray_x86_64.cc

index 1b91313..8c2a4e3 100644 (file)
@@ -44,9 +44,9 @@ static bool readValueFromFile(const char *Filename,
   ssize_t BytesRead;
   bool Success;
   std::tie(BytesRead, Success) = retryingReadSome(Fd, Line, Line + BufSize);
+  close(Fd);
   if (!Success)
     return false;
-  close(Fd);
   char *End = nullptr;
   long long Tmp = internal_simple_strtoll(Line, &End, 10);
   bool Result = false;