From dea6bdf3dfffc56f2310d0ffe5b6c1e9c3a8c60f Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Mon, 1 May 2023 11:45:51 +0100 Subject: [PATCH] combine: fix goroutine stack overflow on bad object If the Remote() call failed to do its path adjustment, then it would recursively call Remote() as part of logging the failure and cause a stack overflow. This fixes it by logging the underlying object instead. See: https://forum.rclone.org/t/rclone-runtime-goroutine-stack-exceeds-1000000000-byte-limit/37912 --- backend/combine/combine.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/combine/combine.go b/backend/combine/combine.go index f6763ee0d..2e1ad2a7b 100644 --- a/backend/combine/combine.go +++ b/backend/combine/combine.go @@ -916,7 +916,7 @@ func (o *Object) String() string { func (o *Object) Remote() string { newPath, err := o.u.pathAdjustment.do(o.Object.String()) if err != nil { - fs.Errorf(o, "Bad object: %v", err) + fs.Errorf(o.Object, "Bad object: %v", err) return err.Error() } return newPath