diff --git a/accel-pppd/ppp/ipcp_opt_wins.c b/accel-pppd/ppp/ipcp_opt_wins.c index c9a3bb5cb8e6fb30e60f62aa3978a7bf7a8bde96..da4dc9bae269f9c8e9964a81a2a47b4e51dbce8d 100644 --- a/accel-pppd/ppp/ipcp_opt_wins.c +++ b/accel-pppd/ppp/ipcp_opt_wins.c @@ -151,11 +151,15 @@ static void ev_wins(struct ev_wins_t *ev) ppp = container_of(ev->ses, typeof(*ppp), ses); - wins_opt = container_of(ipcp_find_option(ppp, &wins1_opt_hnd), typeof(*wins_opt), opt); - wins_opt->addr = ev->wins1; + if (ev->wins1) { + wins_opt = container_of(ipcp_find_option(ppp, &wins1_opt_hnd), typeof(*wins_opt), opt); + wins_opt->addr = ev->wins1; + } - wins_opt = container_of(ipcp_find_option(ppp, &wins2_opt_hnd), typeof(*wins_opt), opt); - wins_opt->addr = ev->wins2; + if (ev->wins2) { + wins_opt = container_of(ipcp_find_option(ppp, &wins2_opt_hnd), typeof(*wins_opt), opt); + wins_opt->addr = ev->wins2; + } } static void load_config(void) diff --git a/accel-pppd/radius/radius.c b/accel-pppd/radius/radius.c index 5e8196d575ab5a5952acfeae4336c40ff97c9e62..dd05b83f6df271e04f556f637f225f27b2bdac62 100644 --- a/accel-pppd/radius/radius.c +++ b/accel-pppd/radius/radius.c @@ -148,14 +148,13 @@ out_err: int rad_proc_attrs(struct rad_req_t *req) { + struct ev_wins_t wins = {}; struct ev_dns_t dns = {}; struct rad_attr_t *attr; struct ipv6db_addr_t *a; - struct ev_wins_t wins; int res = 0; struct radius_pd_t *rpd = req->rpd; - wins.ses = NULL; req->rpd->acct_interim_interval = conf_acct_interim_interval; list_for_each_entry(attr, &req->reply->attrs, entry) {