From 47bdc7b5368b79802e5768b4ac27bc5ec7812650 Mon Sep 17 00:00:00 2001 From: obrien Date: Thu, 16 Jan 2003 07:04:57 +0000 Subject: Import isc-dhcpd-3.0.1rc11. This fixes a security vulnerability in the bundled resolver library. Requested by: scottl(re) --- contrib/isc-dhcp/omapip/message.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'contrib/isc-dhcp/omapip/message.c') diff --git a/contrib/isc-dhcp/omapip/message.c b/contrib/isc-dhcp/omapip/message.c index a073669..0e97e15 100644 --- a/contrib/isc-dhcp/omapip/message.c +++ b/contrib/isc-dhcp/omapip/message.c @@ -3,7 +3,7 @@ Subroutines for dealing with message objects. */ /* - * Copyright (c) 1999-2000 Internet Software Consortium. + * Copyright (c) 1999-2003 Internet Software Consortium. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -327,6 +327,7 @@ isc_result_t omapi_message_unregister (omapi_object_t *mo) omapi_object_reference ((omapi_object_t **)&n, (omapi_object_t *)m -> next, MDL); omapi_object_dereference ((omapi_object_t **)&m -> next, MDL); + omapi_object_dereference ((omapi_object_t **)&n -> prev, MDL); } if (m -> prev) { omapi_message_object_t *tmp = (omapi_message_object_t *)0; @@ -707,10 +708,12 @@ omapi_message_process_internal (omapi_object_t *mo, omapi_object_t *po) status = omapi_protocol_send_status (po, message -> id_object, ISC_R_SUCCESS, message -> id, (char *)0); - if (m) + if (m) { omapi_signal ((omapi_object_t *)m, "status", ISC_R_SUCCESS, (omapi_typed_data_t *)0); + omapi_message_unregister ((omapi_object_t *)m); + } omapi_object_dereference (&object, MDL); @@ -743,6 +746,9 @@ omapi_message_process_internal (omapi_object_t *mo, omapi_object_t *po) omapi_signal ((omapi_object_t *)m, "status", waitstatus, tv); if (status == ISC_R_SUCCESS) omapi_value_dereference (&tv, MDL); + + omapi_message_unregister((omapi_object_t *)m); + return ISC_R_SUCCESS; case OMAPI_OP_DELETE: -- cgit v1.1