[tor-commits] [snowflake/master] Fixed log scrubber to not scrub timestamps

cohosh at torproject.org cohosh at torproject.org
Wed May 8 21:49:32 UTC 2019


commit 83fb5df260d5d98a7679d9a69cacb26f2e1f8b09
Author: Cecylia Bocovich <cohosh at torproject.org>
Date:   Wed May 8 12:31:53 2019 -0400

    Fixed log scrubber to not scrub timestamps
    
    Our log scrubber was a bit over-zealous and was scrubbing timestamps as
    well. While we're still over-scrubbing, we're now more precise and
    ensure that compressed IPv6 addresses have "::"
---
 common/safelog/log.go      | 9 ++++++---
 common/safelog/log_test.go | 8 ++++++++
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/common/safelog/log.go b/common/safelog/log.go
index 8229584..1241676 100644
--- a/common/safelog/log.go
+++ b/common/safelog/log.go
@@ -10,10 +10,13 @@ import (
 )
 
 const ipv4Address = `\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}`
-const ipv6Address = `(([0-9a-fA-F]{0,4}:){2,7}([0-9a-fA-F]{0,4})?(` + ipv4Address + `))` +
-	`|(([0-9a-fA-F]{0,4}:){2,7}([0-9a-fA-F]{0,4})?)`
+const ipv6Address = `([0-9a-fA-F]{0,4}:){5,7}([0-9a-fA-F]{0,4})?`
+const ipv6Compressed = `([0-9a-fA-F]{0,4}:){0,5}([0-9a-fA-F]{0,4})?(::)([0-9a-fA-F]{0,4}:){0,5}([0-9a-fA-F]{0,4})?`
+const ipv6Full = `(` + ipv6Address + `(` + ipv4Address + `))` +
+	`|(` + ipv6Compressed + `(` + ipv4Address + `))` +
+	`|(` + ipv6Address + `)` + `|(` + ipv6Compressed + `)`
 const optionalPort = `(:\d{1,5})?`
-const addressPattern = `((` + ipv4Address + `)|(\[(` + ipv6Address + `)\])|(` + ipv6Address + `))` + optionalPort
+const addressPattern = `((` + ipv4Address + `)|(\[(` + ipv6Full + `)\])|(` + ipv6Full + `))` + optionalPort
 const fullAddrPattern = `(^|\s|[^\w:])` + addressPattern + `(\s|(:\s)|[^\w:]|$)`
 
 var scrubberPatterns = []*regexp.Regexp{
diff --git a/common/safelog/log_test.go b/common/safelog/log_test.go
index 0f342de..16edbc9 100644
--- a/common/safelog/log_test.go
+++ b/common/safelog/log_test.go
@@ -72,6 +72,11 @@ func TestLogScrubberMessages(t *testing.T) {
 			"(1:2:3:4:c:d:e:f) {1:2:3:4:c:d:e:f}",
 			"([scrubbed]) {[scrubbed]}\n",
 		},
+		{
+			//Make sure it doesn't scrub timestamps
+			"2019/05/08 15:37:31 starting",
+			"2019/05/08 15:37:31 starting\n",
+		},
 	} {
 		var buff bytes.Buffer
 		log.SetFlags(0) //remove all extra log output for test comparisons
@@ -102,9 +107,12 @@ func TestLogScrubberGoodFormats(t *testing.T) {
 		"[1:2:3:4:c:d:e:f]:55",
 		"[1111:2222:3333:4444:CCCC:DDDD:EEEE:FFFF]:65535",
 		// compressed IPv6
+		"::f",
 		"::d:e:f",
 		"1:2:3::",
 		"1:2:3::d:e:f",
+		"1:2:3:d:e:f::",
+		"::1:2:3:d:e:f",
 		"1111:2222:3333::DDDD:EEEE:FFFF",
 		// compressed IPv6 with brackets
 		"[::d:e:f]",





More information about the tor-commits mailing list