util, types: parse unix_socket_permission strictly

Default "0o770" failed the base-8 parse and silently became 0700.
Invalid, unquoted or above-0777 values now fail config load.

Fixes #3529
This commit is contained in:
LuoChen
2026-10-03 18:37:56 +08:00
committed by Kristoffer Dalby
parent c9852c43da
commit aaf4ccd8c9
7 changed files with 205 additions and 10 deletions
+6 -2
View File
@@ -41,7 +41,9 @@ func TestConfigFileLoading(t *testing.T) {
assert.Empty(t, viper.GetString("tls_letsencrypt_hostname"))
assert.Equal(t, ":http", viper.GetString("tls_letsencrypt_listen"))
assert.Equal(t, "HTTP-01", viper.GetString("tls_letsencrypt_challenge_type"))
assert.Equal(t, fs.FileMode(0o770), util.GetFileMode("unix_socket_permission"))
mode, err := util.ParseFileMode(viper.GetString("unix_socket_permission"))
require.NoError(t, err)
assert.Equal(t, fs.FileMode(0o770), mode)
assert.False(t, viper.GetBool("logtail.enabled"))
}
@@ -71,6 +73,8 @@ func TestConfigLoading(t *testing.T) {
assert.Empty(t, viper.GetString("tls_letsencrypt_hostname"))
assert.Equal(t, ":http", viper.GetString("tls_letsencrypt_listen"))
assert.Equal(t, "HTTP-01", viper.GetString("tls_letsencrypt_challenge_type"))
assert.Equal(t, fs.FileMode(0o770), util.GetFileMode("unix_socket_permission"))
mode, err := util.ParseFileMode(viper.GetString("unix_socket_permission"))
require.NoError(t, err)
assert.Equal(t, fs.FileMode(0o770), mode)
assert.False(t, viper.GetBool("logtail.enabled"))
}