From 58d3ad76120201356b77aaa1dfb6c9b131ad4ae4 Mon Sep 17 00:00:00 2001 From: Garming Sam Date: Wed, 29 Jan 2014 11:59:29 +1300 Subject: 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 Signed-off-by: Andrew Bartlett Reviewed-by: Michael Adam --- lib/param/loadparm.c | 11 +++++++++-- 1 file 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;iflags[i] |= FLAG_CMDLINE; } -- cgit