From e097ae9632e3b12de4c2516b007f7305841a7530 Mon Sep 17 00:00:00 2001
From: Cameron Sparr <cameronsparr@gmail.com>
Date: Tue, 13 Dec 2016 14:49:11 +0000
Subject: [PATCH] Fix possible panic when file info cannot be gotten

closes #2061
---
 CHANGELOG.md                        |  1 +
 plugins/inputs/filestat/filestat.go | 11 +++++++++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 68262c98..8cb3e619 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -27,6 +27,7 @@
 - [#2146](https://github.com/influxdata/telegraf/issues/2146): Fix potential panic in aggregator plugin metric maker.
 - [#1843](https://github.com/influxdata/telegraf/pull/1843) & [#1668](https://github.com/influxdata/telegraf/issues/1668): Add optional ability to define PID as a tag.
 - [#1730](https://github.com/influxdata/telegraf/issues/1730): Fix win_perf_counters not gathering non-English counters.
+- [#2061](https://github.com/influxdata/telegraf/issues/2061): Fix panic when file stat info cannot be collected due to permissions or other issue(s).
 
 ## v1.1.2 [2016-12-12]
 
diff --git a/plugins/inputs/filestat/filestat.go b/plugins/inputs/filestat/filestat.go
index 938c12e3..83f511a8 100644
--- a/plugins/inputs/filestat/filestat.go
+++ b/plugins/inputs/filestat/filestat.go
@@ -4,6 +4,7 @@ import (
 	"crypto/md5"
 	"fmt"
 	"io"
+	"log"
 	"os"
 
 	"github.com/influxdata/telegraf"
@@ -78,8 +79,14 @@ func (f *FileStat) Gather(acc telegraf.Accumulator) error {
 				"file": fileName,
 			}
 			fields := map[string]interface{}{
-				"exists":     int64(1),
-				"size_bytes": fileInfo.Size(),
+				"exists": int64(1),
+			}
+
+			if fileInfo == nil {
+				log.Printf("E! Unable to get info for file [%s], possible permissions issue",
+					fileName)
+			} else {
+				fields["size_bytes"] = fileInfo.Size()
 			}
 
 			if f.Md5 {
-- 
GitLab