Use smart pointers instead of gotos in digest.cc.
Change-Id: Ifa32c5c6e501a394e6947ed1420b6a4852de8b36
Reviewed-on: https://boringssl-review.googlesource.com/4150
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/tool/digest.cc b/tool/digest.cc
index bed591c..7cd8827 100644
--- a/tool/digest.cc
+++ b/tool/digest.cc
@@ -87,29 +87,25 @@
strerror(errno));
return false;
}
+ std::unique_ptr<int, close_delete> scoped_fd(&fd);
#if !defined(OPENSSL_WINDOWS)
struct stat st;
if (fstat(fd, &st)) {
fprintf(stderr, "Failed to stat input file '%s': %s\n", filename.c_str(),
strerror(errno));
- goto err;
+ return false;
}
if (!S_ISREG(st.st_mode)) {
fprintf(stderr, "%s: not a regular file\n", filename.c_str());
- goto err;
+ return false;
}
#endif
*out_fd = fd;
+ scoped_fd.release();
return true;
-
-#if !defined(OPENSSL_WINDOWS)
-err:
- close(fd);
- return false;
-#endif
}
// SumFile hashes the contents of |source| with |md| and sets |*out_hex| to the