From: Shawn Routhier Date: Wed, 11 Apr 2012 15:43:34 +0000 (+0000) Subject: Fix up some issues found by static analysis X-Git-Tag: v4_3_0a1~97 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bb9189c30a948ef1b2d441dbef5b7c2435aa197d;p=thirdparty%2Fdhcp.git Fix up some issues found by static analysis A potential memory leak and NULL dereference in omapi. The use of a boolean test instead of a bitwise test in dst. [ISC-Bugs #28941] --- diff --git a/RELNOTES b/RELNOTES index aca6a4da3..50536c834 100644 --- a/RELNOTES +++ b/RELNOTES @@ -140,6 +140,11 @@ work on other platforms. Please report any problems and suggested fixes to Thanks to Jiri Popelka at Red Hat for the patch. [ISC-Bugs #22676] +- Fix up some issues found by static analysis + A potential memory leak and NULL dereference in omapi. + The use of a boolean test instead of a bitwise test in dst. + [ISC-Bugs #28941] + Changes since 4.2.2 - Fix the code that checks for an existing DDNS transaction to cancel diff --git a/dst/dst_api.c b/dst/dst_api.c index 97bef9ed2..0d18b6112 100644 --- a/dst/dst_api.c +++ b/dst/dst_api.c @@ -1,10 +1,11 @@ #ifndef LINT -static const char rcsid[] = "$Header: /tmp/cvstest/DHCP/dst/dst_api.c,v 1.9 2009/10/29 00:46:48 sar Exp $"; +static const char rcsid[] = "$Header: /tmp/cvstest/DHCP/dst/dst_api.c,v 1.10 2012/04/11 15:43:34 sar Exp $"; #endif /* * Portions Copyright (c) 1995-1998 by Trusted Information Systems, Inc. * Portions Copyright (c) 2007,2009 by Internet Systems Consortium, Inc. ("ISC") + * Portions Copyright (c) 2012 by Internet Systems Consortium, Inc. ("ISC") * * Permission to use, copy modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -342,7 +343,7 @@ dst_read_key(const char *in_keyname, const unsigned in_id, in_alg)); return (NULL); } - if ((type && (DST_PUBLIC | DST_PRIVATE)) == 0) + if ((type & (DST_PUBLIC | DST_PRIVATE)) == 0) return (NULL); if (in_keyname == NULL) { EREPORT(("dst_read_private_key(): Null key name passed in\n")); diff --git a/omapip/protocol.c b/omapip/protocol.c index 1a6d7e871..990648980 100644 --- a/omapip/protocol.c +++ b/omapip/protocol.c @@ -3,7 +3,8 @@ Functions supporting the object management protocol... */ /* - * Copyright (c) 2004-2007,2009 by Internet Systems Consortium, Inc. ("ISC") + * Copyright (c) 2009,2012 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 @@ -926,12 +927,10 @@ isc_result_t omapi_protocol_destroy (omapi_object_t *h, dfree (p -> default_auth, file, line); while (p -> remote_auth_list) { - omapi_remote_auth_t *r = p -> remote_auth_list -> next; - p -> remote_auth_list = r; - if (r) { - omapi_object_dereference (&r -> a, file, line); - dfree (r, file, line); - } + omapi_remote_auth_t *r = p -> remote_auth_list; + p -> remote_auth_list = p -> remote_auth_list -> next; + omapi_object_dereference (&r -> a, file, line); + dfree (r, file, line); } return ISC_R_SUCCESS; } diff --git a/server/confpars.c b/server/confpars.c index 64272b1b4..1c9c48027 100644 --- a/server/confpars.c +++ b/server/confpars.c @@ -2724,7 +2724,7 @@ void parse_group_declaration (cfile, group) enum dhcp_token token; struct group *g; int declaration = 0; - struct group_object *t; + struct group_object *t = NULL; isc_result_t status; char *name = NULL; int deletedp = 0;