From fce94f06e3b05584390ae4704b0ada72b10463e0 Mon Sep 17 00:00:00 2001 From: Thomas Markwalder Date: Tue, 7 May 2019 15:36:54 -0400 Subject: [PATCH] [#13,!7] Corrected a backwards check in billing class logic RELNOTES - added a release note. server/dhcp.c ack_lease () - corrected the logic used to capture the billing class name for logging --- RELNOTES | 4 ++++ server/dhcp.c | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/RELNOTES b/RELNOTES index 1ada18dc9..e7790ea23 100644 --- a/RELNOTES +++ b/RELNOTES @@ -129,6 +129,10 @@ by Eric Young (eay@cryptsoft.com). update ability (e.g. by undefining NSUPDATE). [ISC-Bugs, #16,!9 git ddb508ac083dae4ff83279dd240bad7f73a97b7d] +- Corrected an issue that was causing the server, when running in + DHPCv4 mode, to segfault when class lease limits are reached. + [ISC-Bugs #13, !7 git #TBD] + Changes since 4.4.0 (New Features) - none Changes since 4.4.0 (Bug Fixes) diff --git a/server/dhcp.c b/server/dhcp.c index 0529662c8..6d129ec97 100644 --- a/server/dhcp.c +++ b/server/dhcp.c @@ -2562,7 +2562,7 @@ void ack_lease (packet, lease, offer, when, msg, ms_nulltp, hp) int bill = 0; for (i = 0; i < packet->class_count; i++) { - struct class *billclass, *subclass; + struct class *billclass, *superclass; billclass = packet->classes[i]; if (billclass->lease_limit) { @@ -2570,9 +2570,9 @@ void ack_lease (packet, lease, offer, when, msg, ms_nulltp, hp) if (bill_class(lease, billclass)) break; - subclass = billclass->superclass; - if (subclass == NULL) - cname = subclass->name; + superclass = billclass->superclass; + if (superclass != NULL) + cname = superclass->name; else cname = billclass->name; } -- 2.47.2