From 24cf1c534166aedd4af0498257a05a265128733d Mon Sep 17 00:00:00 2001 From: Steven Barth Date: Mon, 14 Oct 2013 22:54:21 +0200 Subject: [PATCH] Fix config parsing --- src/config.c | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/src/config.c b/src/config.c index 07dad1f..9228a37 100644 --- a/src/config.c +++ b/src/config.c @@ -344,21 +344,34 @@ int config_parse_interface(struct blob_attr *b, const char *name, bool overwrite } } - if ((c = tb[IFACE_ATTR_RA])) - if ((iface->ra = parse_mode(blobmsg_get_string(c))) < 0) + int mode; + if ((c = tb[IFACE_ATTR_RA])) { + if ((mode = parse_mode(blobmsg_get_string(c))) >= 0) + iface->ra = mode; + else goto err; + } - if ((c = tb[IFACE_ATTR_DHCPV4])) - if ((iface->dhcpv4 = parse_mode(blobmsg_get_string(c))) < 0) + if ((c = tb[IFACE_ATTR_DHCPV4])) { + if ((mode = parse_mode(blobmsg_get_string(c))) >= 0) + iface->dhcpv4 = mode; + else goto err; + } - if ((c = tb[IFACE_ATTR_DHCPV6])) - if ((iface->dhcpv6 = parse_mode(blobmsg_get_string(c))) < 0) + if ((c = tb[IFACE_ATTR_DHCPV6])) { + if ((mode = parse_mode(blobmsg_get_string(c))) >= 0) + iface->dhcpv6 = mode; + else goto err; + } - if ((c = tb[IFACE_ATTR_NDP])) - if ((iface->ndp = parse_mode(blobmsg_get_string(c))) < 0) + if ((c = tb[IFACE_ATTR_NDP])) { + if ((mode = parse_mode(blobmsg_get_string(c))) >= 0) + iface->ndp = mode; + else goto err; + } if ((c = tb[IFACE_ATTR_DNS])) { struct blob_attr *cur; -- 2.11.0