diff options
| author | Ophestra <cat@gensokyo.uk> | 2025-02-14 12:44:55 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2025-02-14 12:44:55 +0900 |
| commit | e431ab3c24acc5309531a26d71e761619bd69eec (patch) | |
| tree | 7293d4e61c1db3b043b2b8192e2c25e8a87e8cc0 /internal/app | |
| parent | 3fba33687b8efca5d1acbc3a23daaa316509e172 (diff) | |
app: check username length against LOGIN_NAME_MAX
This limit is arbitrary, but it's good to enforce it anyway.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/app')
| -rw-r--r-- | internal/app/seal.go | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/internal/app/seal.go b/internal/app/seal.go index 155fafb3..c78add93 100644 --- a/internal/app/seal.go +++ b/internal/app/seal.go @@ -15,6 +15,7 @@ import ( "git.gensokyo.uk/security/fortify/dbus" "git.gensokyo.uk/security/fortify/fst" "git.gensokyo.uk/security/fortify/helper/bwrap" + "git.gensokyo.uk/security/fortify/internal" "git.gensokyo.uk/security/fortify/internal/fmsg" "git.gensokyo.uk/security/fortify/internal/linux" "git.gensokyo.uk/security/fortify/internal/state" @@ -133,7 +134,8 @@ func (a *app) Seal(config *fst.Config) error { } if seal.sys.user.username == "" { seal.sys.user.username = "chronos" - } else if !posixUsername.MatchString(seal.sys.user.username) { + } else if !posixUsername.MatchString(seal.sys.user.username) || + len(seal.sys.user.username) >= internal.Sysconf_SC_LOGIN_NAME_MAX() { return fmsg.WrapError(ErrName, fmt.Sprintf("invalid user name %q", seal.sys.user.username)) } |
