From 8dc21faaf7906176341124e5e5852054fa2b712f Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Thu, 24 Jan 2013 15:17:20 +0100 Subject: [PATCH] BUG/MINOR: unix: remove the 'level' field from the ux struct Commit 290e63aa moved the unix parameters out of the global stats socket to the bind_conf struct. As such the stats admin level was also moved overthere, but it remained in the stats global section where it was not used, except by a nasty memcpy() used to initialize the ux struct in the bind_conf with too large data. Fortunately, the extra data copied were the previous level over the new level so it did not have any impact, but it could have been worse. This bug is 1.5 specific, no backport is needed. Reported-by: Dinko Korunic --- include/types/global.h | 1 - src/cfgparse.c | 6 +++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/include/types/global.h b/include/types/global.h index bfc1a351b..133a98dc8 100644 --- a/include/types/global.h +++ b/include/types/global.h @@ -129,7 +129,6 @@ struct global { uid_t uid; /* -1 to leave unchanged */ gid_t gid; /* -1 to leave unchanged */ mode_t mode; /* 0 to leave unchanged */ - int level; /* access level (ACCESS_LVL_*) */ } ux; } unix_bind; #ifdef USE_CPU_AFFINITY diff --git a/src/cfgparse.c b/src/cfgparse.c index 949114792..dd89c9472 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -1943,7 +1943,11 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm) } bind_conf = bind_conf_alloc(&curproxy->conf.bind, file, linenum, args[1]); - memcpy(&bind_conf->ux, &global.unix_bind.ux, sizeof(global.unix_bind.ux)); + + /* use default settings for unix sockets */ + bind_conf->ux.uid = global.unix_bind.ux.uid; + bind_conf->ux.gid = global.unix_bind.ux.gid; + bind_conf->ux.mode = global.unix_bind.ux.mode; /* NOTE: the following line might create several listeners if there * are comma-separated IPs or port ranges. So all further processing