Browse Source

Avoid potential out-of-bounds on stacktrace capture

Signed-off-by: Robert Lin <robertlin1@gmail.com>
Robert Lin 6 năm trước cách đây
mục cha
commit
dc29d7750b
1 tập tin đã thay đổi với 5 bổ sung1 xóa
  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:]
 }