From 73f56596188bc2c16d263d8cdf7ea92c2eb1bd33 Mon Sep 17 00:00:00 2001 From: Aveline <352441+ym@users.noreply.github.com> Date: Tue, 1 Jul 2025 12:54:38 +0200 Subject: [PATCH] fix(usbgadget): add lock for logWithSupression (#653) --- internal/usbgadget/usbgadget.go | 1 + internal/usbgadget/utils.go | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/internal/usbgadget/usbgadget.go b/internal/usbgadget/usbgadget.go index fb28297..cb70655 100644 --- a/internal/usbgadget/usbgadget.go +++ b/internal/usbgadget/usbgadget.go @@ -81,6 +81,7 @@ type UsbGadget struct { log *zerolog.Logger logSuppressionCounter map[string]int + logSuppressionLock sync.Mutex } const configFSPath = "/sys/kernel/config" diff --git a/internal/usbgadget/utils.go b/internal/usbgadget/utils.go index 2e9a1d0..f8b98cf 100644 --- a/internal/usbgadget/utils.go +++ b/internal/usbgadget/utils.go @@ -82,6 +82,9 @@ func compareFileContent(oldContent []byte, newContent []byte, looserMatch bool) } func (u *UsbGadget) logWithSupression(counterName string, every int, logger *zerolog.Logger, err error, msg string, args ...interface{}) { + u.logSuppressionLock.Lock() + defer u.logSuppressionLock.Unlock() + if _, ok := u.logSuppressionCounter[counterName]; !ok { u.logSuppressionCounter[counterName] = 0 } else { @@ -100,6 +103,9 @@ func (u *UsbGadget) logWithSupression(counterName string, every int, logger *zer } func (u *UsbGadget) resetLogSuppressionCounter(counterName string) { + u.logSuppressionLock.Lock() + defer u.logSuppressionLock.Unlock() + if _, ok := u.logSuppressionCounter[counterName]; !ok { u.logSuppressionCounter[counterName] = 0 }