From: Kees Monshouwer Date: Thu, 27 Jun 2013 07:41:51 +0000 (+0200) Subject: make sure we have a parrent option X-Git-Tag: auth-3.3.1~29 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5e1bf3d9cda2e9a86b0d70091a434a1812327844;p=thirdparty%2Fpdns.git make sure we have a parrent option --- diff --git a/pdns/arguments.cc b/pdns/arguments.cc index 49f981c4e3..12ac048068 100644 --- a/pdns/arguments.cc +++ b/pdns/arguments.cc @@ -294,7 +294,7 @@ void ArgvMap::parseOne(const string &arg, const string &parseOnly, bool lax) string var, val; string::size_type pos; bool incremental = false; - if(!arg.find("--") &&(pos=arg.find("+"))!=string::npos) // this is a --port+=25 case + if(!arg.find("--") &&(pos=arg.find("+="))!=string::npos) // this is a --port+=25 case { var=arg.substr(2,pos-2); val=arg.substr(pos+2); @@ -322,16 +322,16 @@ void ArgvMap::parseOne(const string &arg, const string &parseOnly, bool lax) if(var!="" && (parseOnly.empty() || var==parseOnly)) { pos=val.find_first_not_of(" \t"); // strip leading whitespace - if(pos && pos!=string::npos) + if(pos && pos!=string::npos) val=val.substr(pos); if(parmIsset(var)) { if (incremental) { - if (!params[var].empty()) { - params[var]+=","; + if (params[var].empty()) { + throw ArgException("Incremental parameter '"+var+"' without a parent"); } - params[var]+=val; - } else + params[var]+=","+val; + } else params[var]=val; } else