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 <dkorunic@reflected.net>
This commit is contained in:
Willy Tarreau 2013-01-24 15:17:20 +01:00
parent 0b291bdef1
commit 8dc21faaf7
2 changed files with 5 additions and 2 deletions

View File

@ -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

View File

@ -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