From: Willy Tarreau Date: Thu, 24 Jan 2013 14:17:20 +0000 (+0100) Subject: BUG/MINOR: unix: remove the 'level' field from the ux struct X-Git-Tag: v1.5-dev18~111 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8dc21faaf7906176341124e5e5852054fa2b712f;p=thirdparty%2Fhaproxy.git 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 --- diff --git a/include/types/global.h b/include/types/global.h index bfc1a351be..133a98dc8a 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 949114792f..dd89c9472b 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