in rule/rule.go [788:811]
func getUID(uid string) (uint32, error) {
if uid == "unset" || uid == "-1" {
return 4294967295, nil
}
v, err := strconv.ParseUint(uid, 10, 32)
if err != nil {
if !errors.Is(err, strconv.ErrSyntax) {
return 0, fmt.Errorf("failed to parse uid '%v': %w", uid, err)
}
u, err := user.Lookup(uid)
if err != nil {
return 0, fmt.Errorf("failed to convert user '%v' to a numeric ID: %w", uid, err)
}
v, err = strconv.ParseUint(u.Uid, 10, 32)
if err != nil {
return 0, fmt.Errorf("failed to parse uid '%v' belonging to user '%v': %w", u.Uid, u.Username, err)
}
}
return uint32(v), nil
}