You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@skywalking.apache.org by wu...@apache.org on 2025/03/11 08:12:39 UTC

(skywalking-rover) branch main updated: Fix Combine buffer panic when analyze protocol (#184)

This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-rover.git


The following commit(s) were added to refs/heads/main by this push:
     new ff46ccf  Fix Combine buffer panic when analyze protocol (#184)
ff46ccf is described below

commit ff46ccf3a5c3bf36c0b927bc173fad0f8d6d7319
Author: mrproliu <74...@qq.com>
AuthorDate: Tue Mar 11 16:12:34 2025 +0800

    Fix Combine buffer panic when analyze protocol (#184)
---
 pkg/tools/buffer/buffer.go | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/pkg/tools/buffer/buffer.go b/pkg/tools/buffer/buffer.go
index 33f6d1c..5a2ed13 100644
--- a/pkg/tools/buffer/buffer.go
+++ b/pkg/tools/buffer/buffer.go
@@ -437,9 +437,18 @@ func CombineSlices(validated bool, originalBuffer *Buffer, buffers ...*Buffer) *
 		}
 	}
 
-	var endPosition = buffers[len(buffers)-1].endPosition
-	if endPosition == nil {
-		endPosition = buffers[len(buffers)-1].Position()
+	var endPosition *Position
+	for i := len(buffers) - 1; i >= 0; i-- {
+		if buffers[i] == nil {
+			continue
+		}
+		if buffers[i].endPosition != nil {
+			endPosition = buffers[i].endPosition
+			break
+		} else if buffers[i].Position() != nil {
+			endPosition = buffers[i].Position()
+			break
+		}
 	}
 	return &Buffer{
 		dataEvents:     dataEvents,