Commit 97c15527 authored by Thomas Markwalder's avatar Thomas Markwalder

[master] GCC 9 compilation errors fixed.

	Merge branch '15-confpars-c-has-invalid-error-messages-when-memory-allocation-fails'
parents 9bb1ce33 71277027
...@@ -102,7 +102,7 @@ by Eric Young (eay@cryptsoft.com). ...@@ -102,7 +102,7 @@ by Eric Young (eay@cryptsoft.com).
than in seconds (via ping-timeout). When greater than zero, the value than in seconds (via ping-timeout). When greater than zero, the value
of ping-timeout-ms will override the value of ping-timeout. Thanks of ping-timeout-ms will override the value of ping-timeout. Thanks
to Jay Doran from Bluecat Networks for suggesting this feature. to Jay Doran from Bluecat Networks for suggesting this feature.
[ISC-Bugs #10,!6 git ebe4f7ae427fa91f561a0b6e5f242de08d319a16] [ISC-Bugs #10,!6 git ebe4f7ae427fa91f561a0b6e5f242de08d319a16]
Changes since 4.4.1 (Bug Fixes) Changes since 4.4.1 (Bug Fixes)
...@@ -127,13 +127,17 @@ by Eric Young (eay@cryptsoft.com). ...@@ -127,13 +127,17 @@ by Eric Young (eay@cryptsoft.com).
- Corrected a compilation issue that occurred when building without DNS - Corrected a compilation issue that occurred when building without DNS
update ability (e.g. by undefining NSUPDATE). update ability (e.g. by undefining NSUPDATE).
[ISC-Bugs #16,!9 git ddb508ac083dae4ff83279dd240bad7f73a97b7d] [ISC-Bugs #16,!9 git ddb508ac083dae4ff83279dd240bad7f73a97b7d]
- Corrected an issue that was causing the server, when running in - Corrected an issue that was causing the server, when running in
DHPCv4 mode, to segfault when class lease limits are reached. DHPCv4 mode, to segfault when class lease limits are reached.
Thanks to Peter Nagy at Porion-Digital for reporting the matter Thanks to Peter Nagy at Porion-Digital for reporting the matter
and submitting a patch. and submitting a patch.
[ISC-Bugs #13,!7 git dfcbe359ab278cad70015994ca73ef50d626b23a] [ISC-Bugs #13,!7 git dfcbe359ab278cad70015994ca73ef50d626b23a]
- Made minor changes to eliminate warnings when compiled with GCC 9.
Thanks to Brett Neumeier for bringing the matter to our attention.
[ISC-Bugs #15,!10 git c138f38bd00ceca4e1e51a4db7542a15ef79babd]
Changes since 4.4.0 (New Features) Changes since 4.4.0 (New Features)
- none - none
......
...@@ -643,7 +643,9 @@ discover_interfaces(int state) { ...@@ -643,7 +643,9 @@ discover_interfaces(int state) {
log_fatal("Error allocating interface %s: %s", log_fatal("Error allocating interface %s: %s",
info.name, isc_result_totext(status)); info.name, isc_result_totext(status));
} }
strncpy(tmp->name, info.name, sizeof(tmp->name) - 1);
memcpy(tmp->name, info.name, sizeof(tmp->name));
interface_snorf(tmp, ir); interface_snorf(tmp, ir);
interface_dereference(&tmp, MDL); interface_dereference(&tmp, MDL);
tmp = interfaces; /* XXX */ tmp = interfaces; /* XXX */
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
Common parser code for dhcpd and dhclient. */ Common parser code for dhcpd and dhclient. */
/* /*
* Copyright (c) 2004-2017 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 2004-2019 by Internet Systems Consortium, Inc. ("ISC")
* Copyright (c) 1995-2003 by Internet Software Consortium * Copyright (c) 1995-2003 by Internet Software Consortium
* *
* This Source Code Form is subject to the terms of the Mozilla Public * This Source Code Form is subject to the terms of the Mozilla Public
...@@ -5566,19 +5566,25 @@ int parse_warn (struct parse *cfile, const char *fmt, ...) ...@@ -5566,19 +5566,25 @@ int parse_warn (struct parse *cfile, const char *fmt, ...)
{ {
va_list list; va_list list;
char lexbuf [256]; char lexbuf [256];
char mbuf [1024]; char mbuf [1024]; /* errorwarn.c CVT_BUF_MAX + 1 */
char fbuf [1024]; char fbuf [2048];
char final[4096];
unsigned i, lix; unsigned i, lix;
do_percentm (mbuf, fmt); /* Replace %m in fmt with errno error text */
do_percentm (mbuf, sizeof(mbuf), fmt);
/* %Audit% This is log output. %2004.06.17,Safe% /* %Audit% This is log output. %2004.06.17,Safe%
* If we truncate we hope the user can get a hint from the log. * If we truncate we hope the user can get a hint from the log.
*/ */
/* Prepend the file and line number */
snprintf (fbuf, sizeof fbuf, "%s line %d: %s", snprintf (fbuf, sizeof fbuf, "%s line %d: %s",
cfile -> tlname, cfile -> lexline, mbuf); cfile -> tlname, cfile -> lexline, mbuf);
/* Now add the var args to the format for the final log message. */
va_start (list, fmt); va_start (list, fmt);
vsnprintf (mbuf, sizeof mbuf, fbuf, list); vsnprintf (final, sizeof final, fbuf, list);
va_end (list); va_end (list);
lix = 0; lix = 0;
...@@ -5594,14 +5600,14 @@ int parse_warn (struct parse *cfile, const char *fmt, ...) ...@@ -5594,14 +5600,14 @@ int parse_warn (struct parse *cfile, const char *fmt, ...)
lexbuf [lix] = 0; lexbuf [lix] = 0;
#ifndef DEBUG #ifndef DEBUG
syslog (LOG_ERR, "%s", mbuf); syslog (LOG_ERR, "%s", final);
syslog (LOG_ERR, "%s", cfile -> token_line); syslog (LOG_ERR, "%s", cfile -> token_line);
if (cfile -> lexchar < 81) if (cfile -> lexchar < 81)
syslog (LOG_ERR, "%s^", lexbuf); syslog (LOG_ERR, "%s^", lexbuf);
#endif #endif
if (log_perror) { if (log_perror) {
IGNORE_RET (write (STDERR_FILENO, mbuf, strlen (mbuf))); IGNORE_RET (write (STDERR_FILENO, final, strlen (final)));
IGNORE_RET (write (STDERR_FILENO, "\n", 1)); IGNORE_RET (write (STDERR_FILENO, "\n", 1));
IGNORE_RET (write (STDERR_FILENO, cfile -> token_line, IGNORE_RET (write (STDERR_FILENO, cfile -> token_line,
strlen (cfile -> token_line))); strlen (cfile -> token_line)));
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
Definitions for dhcpd... */ Definitions for dhcpd... */
/* /*
* Copyright (c) 2004-2018 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 2004-2019 by Internet Systems Consortium, Inc. ("ISC")
* Copyright (c) 1996-2003 by Internet Software Consortium * Copyright (c) 1996-2003 by Internet Software Consortium
* *
* This Source Code Form is subject to the terms of the Mozilla Public * This Source Code Form is subject to the terms of the Mozilla Public
...@@ -1393,6 +1393,7 @@ struct interface_info { ...@@ -1393,6 +1393,7 @@ struct interface_info {
unsigned remote_id_len; /* Length of Remote ID. */ unsigned remote_id_len; /* Length of Remote ID. */
char name [IFNAMSIZ]; /* Its name... */ char name [IFNAMSIZ]; /* Its name... */
int index; /* Its if_nametoindex(). */ int index; /* Its if_nametoindex(). */
int rfdesc; /* Its read file descriptor. */ int rfdesc; /* Its read file descriptor. */
int wfdesc; /* Its write file descriptor, if int wfdesc; /* Its write file descriptor, if
......
...@@ -288,7 +288,8 @@ int log_info (const char *, ...) ...@@ -288,7 +288,8 @@ int log_info (const char *, ...)
__attribute__((__format__(__printf__,1,2))); __attribute__((__format__(__printf__,1,2)));
int log_debug (const char *, ...) int log_debug (const char *, ...)
__attribute__((__format__(__printf__,1,2))); __attribute__((__format__(__printf__,1,2)));
void do_percentm (char *obuf, const char *ibuf);
void do_percentm (char *obuf, size_t obufsize, const char *ibuf);
isc_result_t uerr2isc (int); isc_result_t uerr2isc (int);
isc_result_t ns_rcode_to_isc (int); isc_result_t ns_rcode_to_isc (int);
......
...@@ -54,7 +54,7 @@ void log_fatal (const char * fmt, ... ) ...@@ -54,7 +54,7 @@ void log_fatal (const char * fmt, ... )
{ {
va_list list; va_list list;
do_percentm (fbuf, fmt); do_percentm (fbuf, sizeof fbuf, fmt);
/* %Audit% This is log output. %2004.06.17,Safe% /* %Audit% This is log output. %2004.06.17,Safe%
* If we truncate we hope the user can get a hint from the log. * If we truncate we hope the user can get a hint from the log.
...@@ -93,7 +93,7 @@ int log_error (const char * fmt, ...) ...@@ -93,7 +93,7 @@ int log_error (const char * fmt, ...)
{ {
va_list list; va_list list;
do_percentm (fbuf, fmt); do_percentm (fbuf, sizeof fbuf, fmt);
/* %Audit% This is log output. %2004.06.17,Safe% /* %Audit% This is log output. %2004.06.17,Safe%
* If we truncate we hope the user can get a hint from the log. * If we truncate we hope the user can get a hint from the log.
...@@ -120,7 +120,7 @@ int log_info (const char *fmt, ...) ...@@ -120,7 +120,7 @@ int log_info (const char *fmt, ...)
{ {
va_list list; va_list list;
do_percentm (fbuf, fmt); do_percentm (fbuf, sizeof fbuf, fmt);
/* %Audit% This is log output. %2004.06.17,Safe% /* %Audit% This is log output. %2004.06.17,Safe%
* If we truncate we hope the user can get a hint from the log. * If we truncate we hope the user can get a hint from the log.
...@@ -147,7 +147,7 @@ int log_debug (const char *fmt, ...) ...@@ -147,7 +147,7 @@ int log_debug (const char *fmt, ...)
{ {
va_list list; va_list list;
do_percentm (fbuf, fmt); do_percentm (fbuf, sizeof fbuf, fmt);
/* %Audit% This is log output. %2004.06.17,Safe% /* %Audit% This is log output. %2004.06.17,Safe%
* If we truncate we hope the user can get a hint from the log. * If we truncate we hope the user can get a hint from the log.
...@@ -170,8 +170,9 @@ int log_debug (const char *fmt, ...) ...@@ -170,8 +170,9 @@ int log_debug (const char *fmt, ...)
/* Find %m in the input string and substitute an error message string. */ /* Find %m in the input string and substitute an error message string. */
void do_percentm (obuf, ibuf) void do_percentm (obuf, obufsize, ibuf)
char *obuf; char *obuf;
size_t obufsize;
const char *ibuf; const char *ibuf;
{ {
const char *s = ibuf; const char *s = ibuf;
...@@ -191,13 +192,13 @@ void do_percentm (obuf, ibuf) ...@@ -191,13 +192,13 @@ void do_percentm (obuf, ibuf)
if (!m) if (!m)
m = "<unknown error>"; m = "<unknown error>";
len += strlen (m); len += strlen (m);
if (len > CVT_BUF_MAX) if (len > obufsize - 1)
goto out; goto out;
strcpy (p - 1, m); strcpy (p - 1, m);
p += strlen (p); p += strlen (p);
++s; ++s;
} else { } else {
if (++len > CVT_BUF_MAX) if (++len > obufsize - 1)
goto out; goto out;
*p++ = *s++; *p++ = *s++;
} }
...@@ -205,7 +206,7 @@ void do_percentm (obuf, ibuf) ...@@ -205,7 +206,7 @@ void do_percentm (obuf, ibuf)
} else { } else {
if (*s == '%') if (*s == '%')
infmt = 1; infmt = 1;
if (++len > CVT_BUF_MAX) if (++len > obufsize - 1)
goto out; goto out;
*p++ = *s++; *p++ = *s++;
} }
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
DHCP/BOOTP Relay Agent. */ DHCP/BOOTP Relay Agent. */
/* /*
* Copyright(c) 2004-2018 by Internet Systems Consortium, Inc.("ISC") * Copyright(c) 2004-2019 by Internet Systems Consortium, Inc.("ISC")
* Copyright(c) 1997-2003 by Internet Software Consortium * Copyright(c) 1997-2003 by Internet Software Consortium
* *
* This Source Code Form is subject to the terms of the Mozilla Public * This Source Code Form is subject to the terms of the Mozilla Public
...@@ -2119,7 +2119,7 @@ void request_v4_interface(const char* name, int flags) { ...@@ -2119,7 +2119,7 @@ void request_v4_interface(const char* name, int flags) {
(flags & INTERFACE_UPSTREAM ? 'Y' : 'N'), (flags & INTERFACE_UPSTREAM ? 'Y' : 'N'),
(flags & INTERFACE_DOWNSTREAM ? 'Y' : 'N')); (flags & INTERFACE_DOWNSTREAM ? 'Y' : 'N'));
strncpy(tmp->name, name, len); memcpy(tmp->name, name, len);
interface_snorf(tmp, (INTERFACE_REQUESTED | flags)); interface_snorf(tmp, (INTERFACE_REQUESTED | flags));
interface_dereference(&tmp, MDL); interface_dereference(&tmp, MDL);
} }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
Parser for dhcpd config file... */ Parser for dhcpd config file... */
/* /*
* Copyright (c) 2004-2017 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 2004-2019 by Internet Systems Consortium, Inc. ("ISC")
* Copyright (c) 1995-2003 by Internet Software Consortium * Copyright (c) 1995-2003 by Internet Software Consortium
* *
* This Source Code Form is subject to the terms of the Mozilla Public * This Source Code Form is subject to the terms of the Mozilla Public
...@@ -911,7 +911,7 @@ void parse_failover_peer (cfile, group, type) ...@@ -911,7 +911,7 @@ void parse_failover_peer (cfile, group, type)
if (is_identifier (token) || token == STRING) { if (is_identifier (token) || token == STRING) {
name = dmalloc (strlen (val) + 1, MDL); name = dmalloc (strlen (val) + 1, MDL);
if (!name) if (!name)
log_fatal ("no memory for peer name %s", name); log_fatal ("no memory for peer name %s", val);
strcpy (name, val); strcpy (name, val);
} else { } else {
parse_warn (cfile, "expecting failover peer name."); parse_warn (cfile, "expecting failover peer name.");
...@@ -1226,7 +1226,7 @@ void parse_failover_state_declaration (struct parse *cfile, ...@@ -1226,7 +1226,7 @@ void parse_failover_state_declaration (struct parse *cfile,
name = dmalloc (strlen (val) + 1, MDL); name = dmalloc (strlen (val) + 1, MDL);
if (!name) if (!name)
log_fatal ("failover peer name %s: no memory", log_fatal ("failover peer name %s: no memory",
name); val);
strcpy (name, val); strcpy (name, val);
} else { } else {
parse_warn (cfile, "expecting failover peer name."); parse_warn (cfile, "expecting failover peer name.");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment