From: Thomas Markwalder Date: Tue, 7 May 2019 19:36:54 +0000 (-0400) Subject: [#13,!7] Corrected a backwards check in billing class logic X-Git-Tag: v4_4_2b1~16 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=fce94f06e3b05584390ae4704b0ada72b10463e0;p=thirdparty%2Fdhcp.git [#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 --- 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; }