From 9be5d1ece8858e273b3eedfc5971f904049ec2f8 Mon Sep 17 00:00:00 2001 From: Ben Langmuir Date: Mon, 9 Feb 2015 20:13:11 +0000 Subject: [PATCH] Update r228592 for when gethostname() returns an error If gethostname() is not successful, just skip adding the hostname to the module hash. And don't bother setting hostname[255] = 0, since if gethostname() is successful, it will be null-terminated already (and if it's not successful we don't read the string now. llvm-svn: 228601 --- clang/lib/Frontend/CompilerInvocation.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index ac3c311..e1d9351a 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -2028,10 +2028,10 @@ std::string CompilerInvocation::getModuleHash() const { // The LockFileManager cannot tell when processes from another host are // running, so mangle the hostname in to the module hash to separate them. char hostname[256]; - hostname[255] = 0; hostname[0] = 0; - gethostname(hostname, 255); - code = hash_combine(code, StringRef(hostname)); + if (gethostname(hostname, 255) == 0) + code = hash_combine(code, StringRef(hostname)); + // Ignore failures in gethostname() by not including the hostname in the hash. #endif return llvm::APInt(64, code).toString(36, /*Signed=*/false); -- 2.7.4