diff options
author | Shawn Routhier <sar@isc.org> | 2009-01-22 00:43:58 +0000 |
---|---|---|
committer | Shawn Routhier <sar@isc.org> | 2009-01-22 00:43:58 +0000 |
commit | ae566556280cc57824f6ab44fdf5aef97274ee42 (patch) | |
tree | 671dd88802210218a493303b8949512939db4dba | |
parent | 5536fc37e3a0cb0cccce4209f3e06b56885c43d7 (diff) | |
download | isc-dhcp-ae566556280cc57824f6ab44fdf5aef97274ee42.tar.gz |
Update for 19054 - modifications to keep GCC 4.3 happy
-rw-r--r-- | client/dhclient.c | 12 | ||||
-rw-r--r-- | common/parse.c | 16 | ||||
-rw-r--r-- | common/print.c | 6 | ||||
-rw-r--r-- | common/tests/test_alloc.c | 25 | ||||
-rw-r--r-- | configure.ac | 7 | ||||
-rw-r--r-- | dst/dst_api.c | 10 | ||||
-rw-r--r-- | includes/cdefs.h | 21 | ||||
-rw-r--r-- | includes/config.h.in | 3 | ||||
-rw-r--r-- | omapip/errwarn.c | 18 | ||||
-rw-r--r-- | relay/dhcrelay.c | 15 | ||||
-rw-r--r-- | server/dhcpd.c | 17 | ||||
-rw-r--r-- | tests/t_api.c | 7 |
12 files changed, 98 insertions, 59 deletions
diff --git a/client/dhclient.c b/client/dhclient.c index c7100399..dcd294a8 100644 --- a/client/dhclient.c +++ b/client/dhclient.c @@ -3,7 +3,7 @@ DHCP Client. */ /* - * Copyright (c) 2004-2008 by Internet Systems Consortium, Inc. ("ISC") + * Copyright (c) 2004-2009 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1995-2003 by Internet Software Consortium * * Permission to use, copy, modify, and distribute this software for any @@ -62,10 +62,10 @@ struct data_string default_duid; assert (state_is == state_shouldbe). */ #define ASSERT_STATE(state_is, state_shouldbe) {} -static char copyright[] = "Copyright 2004-2008 Internet Systems Consortium."; -static char arr [] = "All rights reserved."; -static char message [] = "Internet Systems Consortium DHCP Client"; -static char url [] = "For info, please visit http://www.isc.org/sw/dhcp/"; +static const char copyright[] = "Copyright 2004-2009 Internet Systems Consortium."; +static const char arr [] = "All rights reserved."; +static const char message [] = "Internet Systems Consortium DHCP Client"; +static const char url [] = "For info, please visit http://www.isc.org/sw/dhcp/"; u_int16_t local_port = 0; u_int16_t remote_port = 0; @@ -3295,7 +3295,7 @@ void go_daemon () write_client_pid_file (); - chdir("/"); + IGNORE_RET (chdir("/")); } void write_client_pid_file () diff --git a/common/parse.c b/common/parse.c index 11092ed9..d2842b48 100644 --- a/common/parse.c +++ b/common/parse.c @@ -3,7 +3,7 @@ Common parser code for dhcpd and dhclient. */ /* - * Copyright (c) 2004-2008 by Internet Systems Consortium, Inc. ("ISC") + * Copyright (c) 2004-2009 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1995-2003 by Internet Software Consortium * * Permission to use, copy, modify, and distribute this software for any @@ -5674,14 +5674,14 @@ int parse_warn (struct parse *cfile, const char *fmt, ...) #endif if (log_perror) { - write (STDERR_FILENO, mbuf, strlen (mbuf)); - write (STDERR_FILENO, "\n", 1); - write (STDERR_FILENO, cfile -> token_line, - strlen (cfile -> token_line)); - write (STDERR_FILENO, "\n", 1); + IGNORE_RET (write (STDERR_FILENO, mbuf, strlen (mbuf))); + IGNORE_RET (write (STDERR_FILENO, "\n", 1)); + IGNORE_RET (write (STDERR_FILENO, cfile -> token_line, + strlen (cfile -> token_line))); + IGNORE_RET (write (STDERR_FILENO, "\n", 1)); if (cfile -> lexchar < 81) - write (STDERR_FILENO, lexbuf, lix); - write (STDERR_FILENO, "^\n", 2); + IGNORE_RET (write (STDERR_FILENO, lexbuf, lix)); + IGNORE_RET (write (STDERR_FILENO, "^\n", 2)); } cfile -> warnings_occurred = 1; diff --git a/common/print.c b/common/print.c index 44e0ce15..f172cf76 100644 --- a/common/print.c +++ b/common/print.c @@ -3,7 +3,7 @@ Turn data structures into printable text. */ /* - * Copyright (c) 2004-2007 by Internet Systems Consortium, Inc. ("ISC") + * Copyright (c) 2004-2007,2009 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1995-2003 by Internet Software Consortium * * Permission to use, copy, modify, and distribute this software for any @@ -308,7 +308,7 @@ void dump_raw (buf, len) lbuf[54]=' '; lbuf[55]=' '; lbuf[73]='\0'; - log_info (lbuf); + log_info ("%s", lbuf); } memset(lbuf, ' ', 79); lbuf [79] = 0; @@ -332,7 +332,7 @@ void dump_raw (buf, len) lbuf[54]=' '; lbuf[55]=' '; lbuf[73]='\0'; - log_info (lbuf); + log_info ("%s", lbuf); } void hash_dump (table) diff --git a/common/tests/test_alloc.c b/common/tests/test_alloc.c index 563fe11c..c0e1b9af 100644 --- a/common/tests/test_alloc.c +++ b/common/tests/test_alloc.c @@ -59,10 +59,10 @@ static void test_buffer_allocate(void) { static const char *test_desc = "buffer_allocate basic test"; - + struct buffer *buf; - t_assert("buffer_allocate", 1, T_REQUIRED, test_desc); + t_assert("buffer_allocate", 1, T_REQUIRED, "%s", test_desc); /* * Check a 0-length buffer. @@ -115,10 +115,10 @@ test_buffer_reference(void) { static const char *test_desc = "buffer_reference basic test"; int result = T_PASS; - + struct buffer *a, *b; - t_assert("buffer_reference", 1, T_REQUIRED, test_desc); + t_assert("buffer_reference", 1, T_REQUIRED, "%s", test_desc); /* * Create a buffer. @@ -186,10 +186,10 @@ static void test_buffer_dereference(void) { static const char *test_desc = "buffer_dereference basic test"; - + struct buffer *a, *b; - t_assert("buffer_dereference", 1, T_REQUIRED, test_desc); + t_assert("buffer_dereference", 1, T_REQUIRED, "%s", test_desc); /* * Confirm buffer_dereference() doesn't work if we pass in NULL. @@ -278,12 +278,12 @@ test_data_string_forget(void) { static const char *test_desc = "data_string_forget basic test"; int result = T_PASS; - + struct buffer *buf; struct data_string a; const char *str = "Lorem ipsum dolor sit amet turpis duis."; - t_assert("data_string_forget", 1, T_REQUIRED, test_desc); + t_assert("data_string_forget", 1, T_REQUIRED, "%s", test_desc); /* * Create the string we want to forget. @@ -347,11 +347,11 @@ test_data_string_forget_nobuf(void) { static const char *test_desc = "data_string_forget test, data_string without buffer"; int result = T_PASS; - + struct data_string a; const char *str = "Lorem ipsum dolor sit amet massa nunc."; - t_assert("data_string_forget, no buffer", 1, T_REQUIRED, test_desc); + t_assert("data_string_forget, no buffer", 1, T_REQUIRED, "%s", test_desc); /* * Create the string we want to forget. @@ -395,7 +395,7 @@ test_data_string_copy(void) { struct data_string a, b; const char *str = "Lorem ipsum dolor sit amet orci aliquam."; - t_assert("data_string_copy", 1, T_REQUIRED, test_desc); + t_assert("data_string_copy", 1, T_REQUIRED, "%s", test_desc); /* @@ -452,7 +452,8 @@ test_data_string_copy_nobuf(void) { struct data_string a, b; const char *str = "Lorem ipsum dolor sit amet cras amet."; - t_assert("data_string_copy, no buffer", 1, T_REQUIRED, test_desc); + t_assert("data_string_copy, no buffer", 1, T_REQUIRED, "%s", + test_desc); /* diff --git a/configure.ac b/configure.ac index f16ee875..522129d2 100644 --- a/configure.ac +++ b/configure.ac @@ -23,6 +23,13 @@ if test "$GCC" = "yes"; then fi fi +# POSIX doesn't include the IPv6 Advanced Socket API and glibc hides +# parts of the IPv6 Advanced Socket API as a result. This is stupid +# as it breaks how the two halves (Basic and Advanced) of the IPv6 +# Socket API were designed to be used but we have to live with it. +# Use this to define _GNU_SOURCE to pull in the IPv6 Advanced Socket API. +AC_USE_SYSTEM_EXTENSIONS + AC_PROG_RANLIB AC_CONFIG_HEADERS([includes/config.h]) diff --git a/dst/dst_api.c b/dst/dst_api.c index fff07257..3cac622d 100644 --- a/dst/dst_api.c +++ b/dst/dst_api.c @@ -1,10 +1,10 @@ #ifndef LINT -static const char rcsid[] = "$Header: /tmp/cvstest/DHCP/dst/dst_api.c,v 1.6 2007/11/30 21:51:43 fdupont Exp $"; +static const char rcsid[] = "$Header: /tmp/cvstest/DHCP/dst/dst_api.c,v 1.7 2009/01/22 00:43:58 sar Exp $"; #endif /* * Portions Copyright (c) 1995-1998 by Trusted Information Systems, Inc. - * Portions Copyright (c) 2007 by Internet Systems Consortium, Inc. ("ISC") + * Portions Copyright (c) 2007,2009 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 @@ -545,7 +545,11 @@ dst_s_read_public_key(const char *in_name, const unsigned in_id, int in_alg) return (NULL); } /* read in the key string */ - fgets(enckey, sizeof(enckey), fp); + if ((fgets(enckey, sizeof(enckey), fp) == NULL) && + (ferror(fp) != 0)) { + EREPORT(("dst_read_public_kety(): Error reading key\n")); + return (NULL); + } /* If we aren't at end-of-file, something is wrong. */ while ((c = getc(fp)) != EOF) diff --git a/includes/cdefs.h b/includes/cdefs.h index 3e344c91..887b1484 100644 --- a/includes/cdefs.h +++ b/includes/cdefs.h @@ -4,7 +4,7 @@ /* * Copyright (c) 1995 RadioMail Corporation. All rights reserved. - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") + * Copyright (c) 2004,2009 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1996-2003 by Internet Software Consortium * * Permission to use, copy, modify, and distribute this software for any @@ -54,4 +54,23 @@ #define ANSI_DECL(x) #define INLINE #endif /* __GNUC__ || __STDC__ */ + +/* The following macro handles the case of unwanted return values. In + * GCC one can specify an attribute for a function to generate a warning + * if the return value of the function is ignored and one can't dispose of + * the warning by the use of void. In conjunction with the use of -Werror + * these warnings prohibit the compilation of the package. This macro + * allows us to assign the return value to a variable and then ignore it. + */ +#if !defined(__GNUC__) || (__GNUC__ < 4) || \ + ((__GNUC__ == 4) && (__GNUC_MINOR__ < 3)) +#define IGNORE_RET(x) (void) x +#else +#define IGNORE_RET(x) \ + do { \ + int ignore_return; \ + ignore_return = x; \ + } while (0) +#endif + #endif /* __ISC_DHCP_CDEFS_H__ */ diff --git a/includes/config.h.in b/includes/config.h.in index d6db4b02..c7ecffe7 100644 --- a/includes/config.h.in +++ b/includes/config.h.in @@ -22,6 +22,9 @@ /* Define to include Failover Protocol support. */ #undef FAILOVER_PROTOCOL +/* Define to 1 if you need the _GNU_SOURCE flag defined */ +#undef _GNU_SOURCE + /* Define to 1 if you have the /dev/random file. */ #undef HAVE_DEV_RANDOM diff --git a/omapip/errwarn.c b/omapip/errwarn.c index 9ea90b1f..31d00c44 100644 --- a/omapip/errwarn.c +++ b/omapip/errwarn.c @@ -4,7 +4,7 @@ /* * Copyright (c) 1995 RadioMail Corporation. - * Copyright (c) 2004,2007 by Internet Systems Consortium, Inc. ("ISC") + * Copyright (c) 2004,2007,2009 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1996-2003 by Internet Software Consortium * * Permission to use, copy, modify, and distribute this software for any @@ -70,8 +70,8 @@ void log_fatal (const char * fmt, ... ) /* Also log it to stderr? */ if (log_perror) { - write (STDERR_FILENO, mbuf, strlen (mbuf)); - write (STDERR_FILENO, "\n", 1); + IGNORE_RET (write (STDERR_FILENO, mbuf, strlen (mbuf))); + IGNORE_RET (write (STDERR_FILENO, "\n", 1)); } #if !defined (NOMINUM) @@ -118,8 +118,8 @@ int log_error (const char * fmt, ...) #endif if (log_perror) { - write (STDERR_FILENO, mbuf, strlen (mbuf)); - write (STDERR_FILENO, "\n", 1); + IGNORE_RET (write (STDERR_FILENO, mbuf, strlen (mbuf))); + IGNORE_RET (write (STDERR_FILENO, "\n", 1)); } return 0; @@ -145,8 +145,8 @@ int log_info (const char *fmt, ...) #endif if (log_perror) { - write (STDERR_FILENO, mbuf, strlen (mbuf)); - write (STDERR_FILENO, "\n", 1); + IGNORE_RET (write (STDERR_FILENO, mbuf, strlen (mbuf))); + IGNORE_RET (write (STDERR_FILENO, "\n", 1)); } return 0; @@ -172,8 +172,8 @@ int log_debug (const char *fmt, ...) #endif if (log_perror) { - write (STDERR_FILENO, mbuf, strlen (mbuf)); - write (STDERR_FILENO, "\n", 1); + IGNORE_RET (write (STDERR_FILENO, mbuf, strlen (mbuf))); + IGNORE_RET (write (STDERR_FILENO, "\n", 1)); } return 0; diff --git a/relay/dhcrelay.c b/relay/dhcrelay.c index e585c900..342e2eb4 100644 --- a/relay/dhcrelay.c +++ b/relay/dhcrelay.c @@ -3,7 +3,7 @@ DHCP/BOOTP Relay Agent. */ /* - * Copyright(c) 2004-2008 by Internet Systems Consortium, Inc.("ISC") + * Copyright(c) 2004-2009 by Internet Systems Consortium, Inc.("ISC") * Copyright(c) 1997-2003 by Internet Software Consortium * * Permission to use, copy, modify, and distribute this software for any @@ -126,10 +126,13 @@ static int strip_relay_agent_options(struct interface_info *, struct interface_info **, struct dhcp_packet *, unsigned); -static char copyright[] = "Copyright 2004-2008 Internet Systems Consortium."; -static char arr[] = "All rights reserved."; -static char message[] = "Internet Systems Consortium DHCP Relay Agent"; -static char url[] = "For info, please visit http://www.isc.org/sw/dhcp/"; +static const char copyright[] = +"Copyright 2004-2009 Internet Systems Consortium."; +static const char arr[] = "All rights reserved."; +static const char message[] = +"Internet Systems Consortium DHCP Relay Agent"; +static const char url[] = +"For info, please visit http://www.isc.org/sw/dhcp/"; #ifdef DHCPv6 #define DHCRELAY_USAGE \ @@ -531,7 +534,7 @@ main(int argc, char **argv) { close(2); pid = setsid(); - chdir("/"); + IGNORE_RET (chdir("/")); } /* Set up the packet handler... */ diff --git a/server/dhcpd.c b/server/dhcpd.c index 3d4d8c0b..b5b7888e 100644 --- a/server/dhcpd.c +++ b/server/dhcpd.c @@ -3,7 +3,7 @@ DHCP Server Daemon. */ /* - * Copyright (c) 2004-2008 by Internet Systems Consortium, Inc. ("ISC") + * Copyright (c) 2004-2009 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1996-2003 by Internet Software Consortium * * Permission to use, copy, modify, and distribute this software for any @@ -32,11 +32,12 @@ * ``http://www.nominum.com''. */ -static char copyright[] = -"Copyright 2004-2008 Internet Systems Consortium."; -static char arr [] = "All rights reserved."; -static char message [] = "Internet Systems Consortium DHCP Server"; -static char url [] = "For info, please visit http://www.isc.org/sw/dhcp/"; +static const char copyright[] = +"Copyright 2004-2009 Internet Systems Consortium."; +static const char arr [] = "All rights reserved."; +static const char message [] = "Internet Systems Consortium DHCP Server"; +static const char url [] = +"For info, please visit http://www.isc.org/sw/dhcp/"; #include "dhcpd.h" #include <omapip/omapip_p.h> @@ -783,7 +784,7 @@ main(int argc, char **argv) { /* Write new pid file. */ if ((i = open(path_dhcpd_pid, O_WRONLY|O_CREAT|O_TRUNC, 0644)) >= 0) { sprintf(pbuf, "%d\n", (int) getpid()); - write(i, pbuf, strlen(pbuf)); + IGNORE_RET (write(i, pbuf, strlen(pbuf))); close(i); } else { log_error("Can't create PID file %s: %m.", path_dhcpd_pid); @@ -812,7 +813,7 @@ main(int argc, char **argv) { open("/dev/null", O_RDWR); log_perror = 0; /* No sense logging to /dev/null. */ - chdir("/"); + IGNORE_RET (chdir("/")); } #endif /* !DEBUG */ diff --git a/tests/t_api.c b/tests/t_api.c index 6685cec0..0211b834 100644 --- a/tests/t_api.c +++ b/tests/t_api.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004, 2005, 2007 Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2004, 2005, 2007, 2009 Internet Systems Consortium, Inc. ("ISC") * Copyright (C) 1999-2003 Internet Software Consortium. * * Permission to use, copy, modify, and/or distribute this software for any @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: t_api.c,v 1.2 2007/11/16 11:04:12 shane Exp $ */ +/* $Id: t_api.c,v 1.3 2009/01/22 00:43:58 sar Exp $ */ /*! \file */ @@ -61,6 +61,7 @@ #endif /* BIND_SUPPORT */ #include "t_api.h" +#include "cdefs.h" static const char *Usage = "\t-a : run all tests\n" @@ -245,7 +246,7 @@ main(int argc, char **argv) { */ if (T_dir != NULL) - (void) chdir(T_dir); + IGNORE_RET (chdir(T_dir)); /* * We don't want buffered output. |