|
|
@@ -17,6 +17,7 @@ import (
|
|
|
"slices"
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
+ "sync"
|
|
|
"sync/atomic"
|
|
|
"unsafe"
|
|
|
|
|
|
@@ -128,9 +129,10 @@ func Login(logf logger.Logf, srcName string, u *user.User, capLevel CapabilityLe
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
+ tokenCloseOnce := sync.OnceFunc(func() { token.Close() })
|
|
|
defer func() {
|
|
|
if err != nil {
|
|
|
- token.Close()
|
|
|
+ tokenCloseOnce()
|
|
|
}
|
|
|
}()
|
|
|
|
|
|
@@ -162,6 +164,7 @@ func Login(logf logger.Logf, srcName string, u *user.User, capLevel CapabilityLe
|
|
|
sessToken.Close()
|
|
|
}
|
|
|
}()
|
|
|
+ tokenCloseOnce()
|
|
|
}
|
|
|
|
|
|
userProfile, err := winutil.LoadUserProfile(sessToken, u)
|