statusz: fix executable sha256
diff --git a/go/statusz/statusz.go b/go/statusz/statusz.go
index 606d244..6c0fe17 100644
--- a/go/statusz/statusz.go
+++ b/go/statusz/statusz.go
@@ -178,15 +178,23 @@
}
username = fmt.Sprintf("%s (%s)", user.Username, user.Uid)
- f, err := os.Open(os.Args[0])
- if err != nil {
- glog.Fatalf("os.Open(%q): %v", os.Args[0], err)
+ exec, err := os.Executable()
+ if err == nil {
+ f, err := os.Open(exec)
+ if err == nil {
+ h := sha256.New()
+ if _, err := io.Copy(h, f); err != nil {
+ glog.Fatalf("io.Copy: %v", err)
+ }
+ binaryHash = fmt.Sprintf("%x", h.Sum(nil))
+ } else {
+ glog.Errorf("Could not get SHA256 of binary: os.Open(%q): %v", exec, err)
+ binaryHash = "could not read executable"
+ }
+ } else {
+ glog.Errorf("Could not get SHA256 of binary: os.Executable(): %v", err)
+ binaryHash = "could not get executable"
}
- h := sha256.New()
- if _, err := io.Copy(h, f); err != nil {
- glog.Fatalf("io.Copy: %v", err)
- }
- binaryHash = fmt.Sprintf("%x", h.Sum(nil))
if DefaultMux {
http.HandleFunc("/debug/status", StatusHandler)