aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-09-24 19:36:55 +0900
committerOphestra <cat@gensokyo.uk>2025-09-24 19:36:55 +0900
commit409ed172c854e548352ed1480eedfa6d75572e43 (patch)
tree93b85693e6b756549aa28edaf503b1e0a5b3e067
parent1c4f593566943d8a0ce16eb3cae77f8c50238202 (diff)
internal/app: handle LookupGroup error
This could return errnos from the cgo calls. Signed-off-by: Ophestra <cat@gensokyo.uk>
-rw-r--r--internal/app/seal.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/internal/app/seal.go b/internal/app/seal.go
index 2d7fea39..c7dd9d63 100644
--- a/internal/app/seal.go
+++ b/internal/app/seal.go
@@ -9,6 +9,7 @@ import (
"io"
"io/fs"
"os"
+ "os/user"
"slices"
"strconv"
"strings"
@@ -187,7 +188,12 @@ func (seal *outcome) finalise(ctx context.Context, k sys.State, config *hst.Conf
seal.user.supp = make([]string, len(config.Groups))
for i, name := range config.Groups {
if g, err := k.LookupGroup(name); err != nil {
- return newWithMessageError(fmt.Sprintf("unknown group %q", name), err)
+ var unknownGroupError user.UnknownGroupError
+ if errors.As(err, &unknownGroupError) {
+ return newWithMessageError(fmt.Sprintf("unknown group %q", name), unknownGroupError)
+ } else {
+ return &hst.AppError{Step: "look up group by name", Err: err}
+ }
} else {
seal.user.supp[i] = g.Gid
}