sd-radv: voidify sd_radv_remove_prefix()

If the prefix is only referenced by sd_radv, then the returned pointer
is already freed.

networkd does not uses the returned value. Let's voidify the function.
This commit is contained in:
Yu Watanabe
2022-03-17 14:34:58 +09:00
parent da29de23ef
commit 95931532aa
3 changed files with 16 additions and 15 deletions
+13 -11
View File
@@ -659,15 +659,20 @@ int sd_radv_add_prefix(sd_radv *ra, sd_radv_prefix *p) {
return 0;
}
sd_radv_prefix *sd_radv_remove_prefix(sd_radv *ra,
const struct in6_addr *prefix,
unsigned char prefixlen) {
sd_radv_prefix *cur, *next;
void sd_radv_remove_prefix(
sd_radv *ra,
const struct in6_addr *prefix,
unsigned char prefixlen) {
assert_return(ra, NULL);
assert_return(prefix, NULL);
sd_radv_prefix *cur;
LIST_FOREACH_SAFE(prefix, cur, next, ra->prefixes) {
if (!ra)
return;
if (!prefix)
return;
LIST_FOREACH(prefix, cur, ra->prefixes) {
if (prefixlen != cur->opt.prefixlen)
continue;
@@ -677,11 +682,8 @@ sd_radv_prefix *sd_radv_remove_prefix(sd_radv *ra,
LIST_REMOVE(prefix, ra->prefixes, cur);
ra->n_prefixes--;
sd_radv_prefix_unref(cur);
break;
return;
}
return cur;
}
int sd_radv_add_route_prefix(sd_radv *ra, sd_radv_route_prefix *p) {
@@ -187,7 +187,7 @@ int dhcp_pd_remove(Link *link, bool only_marked) {
continue;
if (link->radv)
(void) sd_radv_remove_prefix(link->radv, &route->dst.in6, 64);
sd_radv_remove_prefix(link->radv, &route->dst.in6, 64);
link_remove_dhcp_pd_subnet_prefix(link, &route->dst.in6);
@@ -212,7 +212,7 @@ int dhcp_pd_remove(Link *link, bool only_marked) {
in6_addr_mask(&prefix, 64);
if (link->radv)
(void) sd_radv_remove_prefix(link->radv, &prefix, 64);
sd_radv_remove_prefix(link->radv, &prefix, 64);
link_remove_dhcp_pd_subnet_prefix(link, &prefix);
+1 -2
View File
@@ -59,8 +59,7 @@ int sd_radv_set_other_information(sd_radv *ra, int other);
int sd_radv_set_preference(sd_radv *ra, unsigned preference);
int sd_radv_add_prefix(sd_radv *ra, sd_radv_prefix *p);
int sd_radv_add_route_prefix(sd_radv *ra, sd_radv_route_prefix *p);
sd_radv_prefix *sd_radv_remove_prefix(sd_radv *ra, const struct in6_addr *prefix,
unsigned char prefixlen);
void sd_radv_remove_prefix(sd_radv *ra, const struct in6_addr *prefix, unsigned char prefixlen);
int sd_radv_set_rdnss(sd_radv *ra, uint32_t lifetime,
const struct in6_addr *dns, size_t n_dns);
int sd_radv_set_dnssl(sd_radv *ra, uint32_t lifetime, char **search_list);