]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
internal/warpc: Fix SIGSEGV in Close() when dispatcher fails to start
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 7 Mar 2026 10:39:31 +0000 (11:39 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 7 Mar 2026 14:30:07 +0000 (15:30 +0100)
Only set started=true when Start() succeeds, so Close() doesn't
attempt to close a nil dispatcher.

Fixes #14536

internal/warpc/warpc.go

index e62e6b09ea7fed7d2eb5d09e4dc31bc73385395f..58dcf5dc7d873f7fc3200fd745e68badac9229c4 100644 (file)
@@ -776,8 +776,10 @@ func (d *lazyDispatcher[Q, R]) start() (Dispatcher[Q, R], error) {
        d.startOnce.Do(func() {
                start := time.Now()
                d.dispatcher, d.startErr = Start[Q, R](d.opts)
-               d.started = true
-               d.opts.Infof("started dispatcher in %s", time.Since(start))
+               if d.startErr == nil {
+                       d.started = true
+                       d.opts.Infof("started dispatcher in %s", time.Since(start))
+               }
        })
        return d.dispatcher, d.startErr
 }