From: Arran Cudbard-Bell Date: Fri, 26 May 2017 01:24:23 +0000 (-0400) Subject: CID 140986: Check return code of cf_pair_parse X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5047f8fe252ae3267491807cfa2da2afe3267d02;p=thirdparty%2Ffreeradius-server.git CID 140986: Check return code of cf_pair_parse --- diff --git a/src/modules/proto_bfd/proto_bfd.c b/src/modules/proto_bfd/proto_bfd.c index d07e9657ef7..b2f1130489c 100644 --- a/src/modules/proto_bfd/proto_bfd.c +++ b/src/modules/proto_bfd/proto_bfd.c @@ -1667,12 +1667,16 @@ static int bfd_socket_parse(CONF_SECTION *cs, rad_listen_t *this) sock->my_ipaddr = ipaddr; sock->my_port = listen_port; - cf_pair_parse(sock, cs, "interface", FR_ITEM_POINTER(FR_TYPE_STRING, &sock->interface), NULL, T_INVALID); - - cf_pair_parse(sock, cs, "min_receive_interval", FR_ITEM_POINTER(FR_TYPE_UINT32, &sock->min_rx_interval), "1000", T_BARE_WORD); - cf_pair_parse(sock, cs, "max_timeouts", FR_ITEM_POINTER(FR_TYPE_UINT32, &sock->max_timeouts), "3", T_BARE_WORD); - cf_pair_parse(sock, cs, "demand", FR_ITEM_POINTER(FR_TYPE_BOOL, &sock->demand), "no", T_DOUBLE_QUOTED_STRING); - cf_pair_parse(NULL, cs, "auth_type", FR_ITEM_POINTER(FR_TYPE_STRING, &auth_type_str), NULL, T_INVALID); + if (cf_pair_parse(sock, cs, "interface", FR_ITEM_POINTER(FR_TYPE_STRING, &sock->interface), NULL, T_INVALID) < 0) return -1; + + if (cf_pair_parse(sock, cs, "min_receive_interval", FR_ITEM_POINTER(FR_TYPE_UINT32, + &sock->min_rx_interval), "1000", T_BARE_WORD) < 0) return -1; + if (cf_pair_parse(sock, cs, "max_timeouts", FR_ITEM_POINTER(FR_TYPE_UINT32, + &sock->max_timeouts), "3", T_BARE_WORD) < 0) return -1; + if (cf_pair_parse(sock, cs, "demand", FR_ITEM_POINTER(FR_TYPE_BOOL, &sock->demand), + "no", T_DOUBLE_QUOTED_STRING) < 0) return -1; + if (cf_pair_parse(NULL, cs, "auth_type", FR_ITEM_POINTER(FR_TYPE_STRING, &auth_type_str), + NULL, T_INVALID) < 0) return -1; if (!this->server) { cf_pair_parse(sock, cs, "server", FR_ITEM_POINTER(FR_TYPE_STRING, &sock->server), NULL, T_INVALID);