Fix parsing of synth-domain=domain,addr,addr,prefix

This commit is contained in:
Simon Kelley
2013-10-25 10:37:30 +01:00
parent 1f776a4aa2
commit eec5c1e21c

View File

@@ -1860,9 +1860,12 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma
else else
ret_err(gen_err); ret_err(gen_err);
} }
else else
{ {
char *prefstr;
arg = split(comma); arg = split(comma);
prefstr = split(arg);
if (inet_pton(AF_INET, comma, &new->start)) if (inet_pton(AF_INET, comma, &new->start))
{ {
new->is6 = 0; new->is6 = 0;
@@ -1883,6 +1886,13 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma
#endif #endif
else else
ret_err(gen_err); ret_err(gen_err);
if (option != 's' && prefstr)
{
if (!(new->prefix = canonicalise_opt(prefstr)) ||
strlen(new->prefix) > MAXLABEL - INET_ADDRSTRLEN)
ret_err(_("bad prefix"));
}
} }
new->domain = d; new->domain = d;