You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.7 KiB
55 lines
1.7 KiB
autofs-5.0.7 - fix interface address null check |
|
|
|
From: Doug Nazar <nazard@nazar.ca> |
|
|
|
Since commit aa6f7793 [autofs-5.0.7 - fix ipv6 proximity calculation] |
|
get_proximity() uses getifaddrs however it crashes on interfaces with |
|
no addresses. |
|
|
|
Fix the NULL check to ignore interfaces with no addresses. |
|
Also skip interfaces which are not currently running. |
|
--- |
|
CHANGELOG | 1 + |
|
modules/replicated.c | 10 ++++++---- |
|
2 files changed, 7 insertions(+), 4 deletions(-) |
|
|
|
diff --git a/CHANGELOG b/CHANGELOG |
|
index 66c11de..50e83d7 100644 |
|
--- a/CHANGELOG |
|
+++ b/CHANGELOG |
|
@@ -43,6 +43,7 @@ |
|
- make dump maps check for duplicate indirect mounts. |
|
- document allowed map sources in auto.master. |
|
- add enable sloppy mount option to configure. |
|
+- fix interface address null check. |
|
|
|
25/07/2012 autofs-5.0.7 |
|
======================= |
|
diff --git a/modules/replicated.c b/modules/replicated.c |
|
index 26f64b8..6dbdade 100644 |
|
--- a/modules/replicated.c |
|
+++ b/modules/replicated.c |
|
@@ -165,8 +165,9 @@ static unsigned int get_proximity(struct sockaddr *host_addr) |
|
|
|
this = ifa; |
|
while (this) { |
|
- if (this->ifa_flags & IFF_POINTOPOINT || |
|
- this->ifa_addr->sa_data == NULL) { |
|
+ if (!(this->ifa_flags & IFF_UP) || |
|
+ this->ifa_flags & IFF_POINTOPOINT || |
|
+ this->ifa_addr == NULL) { |
|
this = this->ifa_next; |
|
continue; |
|
} |
|
@@ -202,8 +203,9 @@ static unsigned int get_proximity(struct sockaddr *host_addr) |
|
|
|
this = ifa; |
|
while (this) { |
|
- if (this->ifa_flags & IFF_POINTOPOINT || |
|
- this->ifa_addr->sa_data == NULL) { |
|
+ if (!(this->ifa_flags & IFF_UP) || |
|
+ this->ifa_flags & IFF_POINTOPOINT || |
|
+ this->ifa_addr == NULL) { |
|
this = this->ifa_next; |
|
continue; |
|
}
|
|
|