From 3a6a84cbb3410ebc5c3dbed086e0f4c017016486 Mon Sep 17 00:00:00 2001 From: Shawn Routhier Date: Tue, 12 May 2015 11:22:57 -0700 Subject: [PATCH] [v4_1_esv] Don't send expired addresses to the script in the client Don't send expired addresses to the script in the client --- RELNOTES | 5 +++++ client/dhc6.c | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/RELNOTES b/RELNOTES index d1fb9e57a..d9fe4d91c 100644 --- a/RELNOTES +++ b/RELNOTES @@ -99,6 +99,11 @@ by Eric Young (eay@cryptsoft.com). change it to labs to make them happy. [ISC-Bugs #39301] +- In the client don't send expired addresses to the script as part of + the binding process. Thanks to Sven Trenkel at Google for reporting + the issue and suggesting the patch. + [ISC-Bugs #38631] + Changes since 4.1-ESV-R11rc2 - None diff --git a/client/dhc6.c b/client/dhc6.c index 614f5da29..fd22e1372 100644 --- a/client/dhc6.c +++ b/client/dhc6.c @@ -1,7 +1,7 @@ /* dhc6.c - DHCPv6 client routines. */ /* - * Copyright (c) 2012-2014 by Internet Systems Consortium, Inc. ("ISC") + * Copyright (c) 2012-2015 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 2006-2010 by Internet Systems Consortium, Inc. ("ISC") * * Permission to use, copy, modify, and distribute this software for any @@ -4317,6 +4317,10 @@ start_bound(struct client_state *client) oldia = NULL; for (addr = ia->addrs ; addr != NULL ; addr = addr->next) { + /* Don't try to use the address if it's already expired */ + if (addr->flags & DHC6_ADDR_EXPIRED) + continue; + if (oldia != NULL) { if (ia->ia_type != D6O_IA_PD) oldaddr = find_addr(oldia->addrs, -- 2.47.3