diff options
author | Garming Sam <garming@catalyst.net.nz> | 2014-01-29 11:59:29 +1300 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2014-01-29 09:10:54 +0100 |
commit | 58d3ad76120201356b77aaa1dfb6c9b131ad4ae4 (patch) | |
tree | 1bbb49a9b9c8d5bd32e00512bfacf37718fc49f2 /lib/param/loadparm.c | |
parent | 58865d96f187b843acea6d80f595ae9023f13708 (diff) | |
download | samba-58d3ad76120201356b77aaa1dfb6c9b131ad4ae4.tar.gz samba-58d3ad76120201356b77aaa1dfb6c9b131ad4ae4.tar.xz samba-58d3ad76120201356b77aaa1dfb6c9b131ad4ae4.zip |
param: fix an offset bug in lpcfg_set_cmdline
Previously, it was possible to compare offsets between
loadparm_service and loadparm_global. This meant in some cases
incorrectly skipping certain parameters.
Signed-off-by: Garming Sam <garming@catalyst.net.nz>
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
Diffstat (limited to 'lib/param/loadparm.c')
-rw-r--r-- | lib/param/loadparm.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c index 802ac27334..63001a2336 100644 --- a/lib/param/loadparm.c +++ b/lib/param/loadparm.c @@ -1574,10 +1574,17 @@ bool lpcfg_set_cmdline(struct loadparm_context *lp_ctx, const char *pszParmName, lp_ctx->flags[parmnum] |= FLAG_CMDLINE; /* we have to also set FLAG_CMDLINE on aliases */ - for (i=parmnum-1;i>=0 && parm_table[i].offset == parm_table[parmnum].offset;i--) { + for (i=parmnum-1; + i>=0 && parm_table[i].p_class == parm_table[parmnum].p_class && + parm_table[i].offset == parm_table[parmnum].offset; + i--) { lp_ctx->flags[i] |= FLAG_CMDLINE; } - for (i=parmnum+1;i<NUMPARAMETERS && parm_table[i].offset == parm_table[parmnum].offset;i++) { + for (i=parmnum+1; + i<NUMPARAMETERS && + parm_table[i].p_class == parm_table[parmnum].p_class && + parm_table[i].offset == parm_table[parmnum].offset; + i++) { lp_ctx->flags[i] |= FLAG_CMDLINE; } |