summaryrefslogtreecommitdiff
path: root/common/options.c
diff options
context:
space:
mode:
authorThomas Markwalder <tmark@isc.org>2018-02-09 14:46:08 -0500
committerThomas Markwalder <tmark@isc.org>2018-02-09 14:46:08 -0500
commit197b26f25309f947b97a83b8fdfc414b767798f8 (patch)
treeef4e0c322499704a6c0dc30ab697cb1b0a579db4 /common/options.c
parent6826003be8ed4715bd6ac40decc364a65eb5b036 (diff)
downloadisc-dhcp-197b26f25309f947b97a83b8fdfc414b767798f8.tar.gz
[master] Corrected refcnt loss in option parsing
Merges in 47140.
Diffstat (limited to 'common/options.c')
-rw-r--r--common/options.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/common/options.c b/common/options.c
index 5044d4a1..6f23bc15 100644
--- a/common/options.c
+++ b/common/options.c
@@ -3,7 +3,7 @@
DHCP options parsing and reassembly. */
/*
- * Copyright (c) 2004-2017 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 2004-2018 by Internet Systems Consortium, Inc. ("ISC")
* Copyright (c) 1995-2003 by Internet Software Consortium
*
* This Source Code Form is subject to the terms of the Mozilla Public
@@ -177,6 +177,8 @@ int parse_option_buffer (options, buffer, length, universe)
/* If the length is outrageous, the options are bad. */
if (offset + len > length) {
+ /* Avoid reference count overflow */
+ option_dereference(&option, MDL);
reason = "option length exceeds option buffer length";
bogus:
log_error("parse_option_buffer: malformed option "