From: Shawn Routhier Date: Tue, 14 Dec 2010 22:07:47 +0000 (+0000) Subject: Don't pass the ISC_R_INPROGRESS status to the omapi signal handlers. X-Git-Tag: v4_2_1b1~14 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=067e540b2316de723c09fe0eb1516ad58278d723;p=thirdparty%2Fdhcp.git Don't pass the ISC_R_INPROGRESS status to the omapi signal handlers. Passing it through to the handlers caused the omshell program to fail to connect to the server. [ISC-Bugs #21839] Fix the paranthesis in the code to process configuration statements beginning with "auth". The previous arrangement caused "auto-partner-down" to be processed incorrectly. [ISC-Bugs #21854] --- diff --git a/RELNOTES b/RELNOTES index e43a2ffcb..5df03f3b4 100644 --- a/RELNOTES +++ b/RELNOTES @@ -146,6 +146,14 @@ work on other platforms. Please report any problems and suggested fixes to non-responsive. [ISC-Bugs #22679] CERT: VU#159528 CVE: CVE-2010-3616 +- Don't pass the ISC_R_INPROGRESS status to the omapi signal handlers. + Passing it through to the handlers caused the omshell program to fail + to connect to the server. [ISC-Bugs #21839] + +- Fix the paranthesis in the code to process configuration statements + beginning with "auth". The previous arrangement caused + "auto-partner-down" to be processed incorrectly. [ISC-Bugs #21854] + Changes since 4.2.0rc1 - Documentation cleanup covering multiple tickets diff --git a/common/conflex.c b/common/conflex.c index 661c8c3ed..27a96e1d5 100644 --- a/common/conflex.c +++ b/common/conflex.c @@ -765,8 +765,8 @@ intern(char *atom, enum dhcp_token dfv) { break; } if (!strncasecmp(atom + 1, "ut", 2)) { - if (isascii(atom[3] && - (tolower((unsigned char)atom[3]) == 'h'))) { + if (isascii(atom[3]) && + (tolower((unsigned char)atom[3]) == 'h')) { if (!strncasecmp(atom + 4, "enticat", 7)) { if (!strcasecmp(atom + 11, "ed")) return AUTHENTICATED; diff --git a/omapip/connection.c b/omapip/connection.c index 4948070a9..bb244c2ec 100644 --- a/omapip/connection.c +++ b/omapip/connection.c @@ -3,7 +3,8 @@ Subroutines for dealing with connections. */ /* - * Copyright (c) 2004,2007,2009 by Internet Systems Consortium, Inc. ("ISC") + * Copyright (c) 2009-2010 by Internet Systems Consortium, Inc. ("ISC") + * Copyright (c) 2004,2007 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1999-2003 by Internet Software Consortium * * Permission to use, copy, modify, and distribute this software for any @@ -597,18 +598,21 @@ isc_result_t omapi_connection_connect (omapi_object_t *h) { isc_result_t status; - status = omapi_connection_connect_internal (h); - if (status != ISC_R_SUCCESS) - omapi_signal (h, "status", status); - /* - * Currently we use the INPROGRESS error to indicate that - * we want more from the socket. In this case we have now connected - * and are trying to write to the socket for the first time. + * We use the INPROGRESS status to indicate that + * we want more from the socket. In this case we + * have now connected and are trying to write to + * the socket for the first time. For the signaling + * code this is the same as a SUCCESS so we don't + * pass it on as a signal. */ + status = omapi_connection_connect_internal (h); if (status == ISC_R_INPROGRESS) return ISC_R_INPROGRESS; + if (status != ISC_R_SUCCESS) + omapi_signal (h, "status", status); + return ISC_R_SUCCESS; }