Преглед на файлове

Avoid potential out-of-bounds on stacktrace capture

Signed-off-by: Robert Lin <robertlin1@gmail.com>
Robert Lin преди 6 години
родител
ревизия
dc29d7750b
променени са 1 файла, в които са добавени 5 реда и са изтрити 1 реда
  1. 5 1
      internal/core/logger.go

+ 5 - 1
internal/core/logger.go

@@ -75,5 +75,9 @@ func (d *DefaultLogger) logStacktraceToErr() {
 func captureStacktrace(skip int) []string {
 	stack := string(debug.Stack())
 	lines := strings.Split(stack, "\n")
-	return lines[2*skip+1:]
+	linesToSkip := 2*skip + 1
+	if linesToSkip > len(lines) {
+		return lines
+	}
+	return lines[linesToSkip:]
 }