diff options
Diffstat (limited to 'util/messages.c')
-rw-r--r-- | util/messages.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/util/messages.c b/util/messages.c index b5c2dba..941a88f 100644 --- a/util/messages.c +++ b/util/messages.c @@ -51,15 +51,14 @@ * va_list, and the applicable errno value (if any). * * The canonical version of this file is maintained in the rra-c-util package, - * which can be found at <http://www.eyrie.org/~eagle/software/rra-c-util/>. + * which can be found at <https://www.eyrie.org/~eagle/software/rra-c-util/>. * * Written by Russ Allbery <eagle@eyrie.org> - * Copyright 2008, 2009, 2010, 2013 + * Copyright 2015-2016 Russ Allbery <eagle@eyrie.org> + * Copyright 2008-2010, 2013-2014 * The Board of Trustees of the Leland Stanford Junior University - * Copyright (c) 2004, 2005, 2006 - * by Internet Systems Consortium, Inc. ("ISC") - * Copyright (c) 1991, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, - * 2002, 2003 by The Internet Software Consortium and Rich Salz + * Copyright 2004-2006 Internet Systems Consortium, Inc. ("ISC") + * Copyright 1991, 1994-2003 The Internet Software Consortium and Rich Salz * * This code is derived from software contributed to the Internet Software * Consortium by Rich Salz. @@ -75,6 +74,8 @@ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. + * + * SPDX-License-Identifier: ISC */ #include <config.h> @@ -238,7 +239,7 @@ message_log_syslog(int pri, size_t len, const char *fmt, va_list args, int err) exit(message_fatal_cleanup ? (*message_fatal_cleanup)() : 1); } status = vsnprintf(buffer, len + 1, fmt, args); - if (status < 0) { + if (status < 0 || (size_t) status >= len + 1) { warn("failed to format output with vsnprintf in syslog handler"); free(buffer); return; |