From: Evan Hunt Date: Tue, 28 Aug 2018 22:43:44 +0000 (-0700) Subject: Ensure that POSIX strerror_r variant is use even when _GNU_SOURCE is enabled by default X-Git-Tag: v9.13.3~22^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1656152d76d927d7866b26ced1d3968afe507eea;p=thirdparty%2Fbind9.git Ensure that POSIX strerror_r variant is use even when _GNU_SOURCE is enabled by default --- diff --git a/bin/named/unix/os.c b/bin/named/unix/os.c index 0cff5fa4033..00052e8cf8c 100644 --- a/bin/named/unix/os.c +++ b/bin/named/unix/os.c @@ -40,6 +40,7 @@ #include #include #include +#include #include #include diff --git a/lib/dns/ssu_external.c b/lib/dns/ssu_external.c index b9c2de40a5c..1494404072a 100644 --- a/lib/dns/ssu_external.c +++ b/lib/dns/ssu_external.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include diff --git a/lib/dns/zone.c b/lib/dns/zone.c index e5f0a9695b2..a35d3ae3cee 100644 --- a/lib/dns/zone.c +++ b/lib/dns/zone.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include diff --git a/lib/isc/include/isc/Makefile.in b/lib/isc/include/isc/Makefile.in index 9279dbf7e53..e9375a2f122 100644 --- a/lib/isc/include/isc/Makefile.in +++ b/lib/isc/include/isc/Makefile.in @@ -32,7 +32,7 @@ HEADERS = aes.h app.h assertions.h atomic.h backtrace.h base32.h base64.h \ radix.h random.h ratelimiter.h refcount.h regex.h \ region.h resource.h result.h resultclass.h rwlock.h \ safe.h serial.h sha1.h sha2.h sockaddr.h socket.h \ - stats.h stdio.h stdlib.h string.h symtab.h \ + stats.h stdio.h stdlib.h strerr.h string.h symtab.h \ task.h taskpool.h timer.h tm.h types.h util.h version.h \ xml.h diff --git a/lib/isc/include/isc/strerr.h b/lib/isc/include/isc/strerr.h new file mode 100644 index 00000000000..40022ecd6d5 --- /dev/null +++ b/lib/isc/include/isc/strerr.h @@ -0,0 +1,23 @@ +/* + * Copyright (C) Internet Systems Consortium, Inc. ("ISC") + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * See the COPYRIGHT file distributed with this work for additional + * information regarding copyright ownership. + */ + +#pragma once + +/*! \file isc/strerr.h */ + +#include + +#include + +#if _GNU_SOURCE +#undef strerror_r +#define strerror_r isc_string_strerror_r +#endif diff --git a/lib/isc/include/isc/string.h b/lib/isc/include/isc/string.h index 9750163aa92..52c959e340f 100644 --- a/lib/isc/include/isc/string.h +++ b/lib/isc/include/isc/string.h @@ -34,4 +34,7 @@ isc_string_strlcat(char *dst, const char *src, size_t size); #define strlcat isc_string_strlcat #endif +int +isc_string_strerror_r(int errnum, char *buf, size_t buflen); + ISC_LANG_ENDDECLS diff --git a/lib/isc/pthreads/condition.c b/lib/isc/pthreads/condition.c index 2c3b07cc77f..4a9fa9499a4 100644 --- a/lib/isc/pthreads/condition.c +++ b/lib/isc/pthreads/condition.c @@ -18,6 +18,7 @@ #include #include +#include #include #include #include diff --git a/lib/isc/pthreads/mutex.c b/lib/isc/pthreads/mutex.c index a04871219db..76bac089b69 100644 --- a/lib/isc/pthreads/mutex.c +++ b/lib/isc/pthreads/mutex.c @@ -16,7 +16,6 @@ #include #include -#include #include #include #include @@ -24,6 +23,8 @@ #include #include #include +#include +#include #include #if ISC_MUTEX_PROFILE diff --git a/lib/isc/string.c b/lib/isc/string.c index ff37f61944f..b1e42a0b571 100644 --- a/lib/isc/string.c +++ b/lib/isc/string.c @@ -42,7 +42,10 @@ #include // IWYU pragma: keep +#ifdef _GNU_SOURCE +#undef _GNU_SOURCE #include +#endif #include "isc/string.h" // IWYU pragma: keep @@ -103,3 +106,8 @@ isc_string_strlcat(char *dst, const char *src, size_t size) return(dlen + (s - src)); /* count does not include NUL */ } + +int +isc_string_strerror_r(int errnum, char *buf, size_t buflen) { + return (strerror_r(errnum, buf, buflen)); +} diff --git a/lib/isc/unix/app.c b/lib/isc/unix/app.c index f81ef70f816..8d5ec293669 100644 --- a/lib/isc/unix/app.c +++ b/lib/isc/unix/app.c @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include diff --git a/lib/isc/unix/errno2result.c b/lib/isc/unix/errno2result.c index 604213a6e24..d72d56f7e9c 100644 --- a/lib/isc/unix/errno2result.c +++ b/lib/isc/unix/errno2result.c @@ -15,10 +15,11 @@ #include #include -#include #include #include +#include +#include #include #include "errno2result.h" diff --git a/lib/isc/unix/interfaceiter.c b/lib/isc/unix/interfaceiter.c index fb1a389f82d..0e7712a77e7 100644 --- a/lib/isc/unix/interfaceiter.c +++ b/lib/isc/unix/interfaceiter.c @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include diff --git a/lib/isc/unix/net.c b/lib/isc/unix/net.c index 68757d7eff2..5b5fb4db0e0 100644 --- a/lib/isc/unix/net.c +++ b/lib/isc/unix/net.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include diff --git a/lib/isc/unix/socket.c b/lib/isc/unix/socket.c index 73d5bd34776..772e06be3e6 100644 --- a/lib/isc/unix/socket.c +++ b/lib/isc/unix/socket.c @@ -35,7 +35,6 @@ #include #include #include -#include #include #include @@ -56,6 +55,7 @@ #include #include #include +#include #include #include #include diff --git a/lib/isc/unix/time.c b/lib/isc/unix/time.c index b5e83c87223..605b02938f5 100644 --- a/lib/isc/unix/time.c +++ b/lib/isc/unix/time.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include diff --git a/lib/isc/win32/errno2result.c b/lib/isc/win32/errno2result.c index c8f6ea3d1f6..d24a1268b1f 100644 --- a/lib/isc/win32/errno2result.c +++ b/lib/isc/win32/errno2result.c @@ -17,7 +17,7 @@ #include "errno2result.h" #include -#include +#include #include /* diff --git a/lib/isc/win32/interfaceiter.c b/lib/isc/win32/interfaceiter.c index 4c56531edcd..3272c89ecf1 100644 --- a/lib/isc/win32/interfaceiter.c +++ b/lib/isc/win32/interfaceiter.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include diff --git a/lib/isc/win32/libisc.def.in b/lib/isc/win32/libisc.def.in index d033611bee9..9c05ba59c7d 100644 --- a/lib/isc/win32/libisc.def.in +++ b/lib/isc/win32/libisc.def.in @@ -614,6 +614,7 @@ isc_stdio_sync isc_stdio_tell isc_stdio_write isc_stdtime_get +isc_string_strerror_r isc_string_strlcat isc_string_strlcpy isc_symtab_count diff --git a/lib/isc/win32/libisc.vcxproj.filters.in b/lib/isc/win32/libisc.vcxproj.filters.in index e1ff0c73fa7..ff1c035ac23 100644 --- a/lib/isc/win32/libisc.vcxproj.filters.in +++ b/lib/isc/win32/libisc.vcxproj.filters.in @@ -245,6 +245,9 @@ Library Header Files + + Library Header Files + Library Header Files diff --git a/lib/isc/win32/libisc.vcxproj.in b/lib/isc/win32/libisc.vcxproj.in index bc4fa9f4cce..376ab0cf0c0 100644 --- a/lib/isc/win32/libisc.vcxproj.in +++ b/lib/isc/win32/libisc.vcxproj.in @@ -363,6 +363,7 @@ copy InstallFiles ..\Build\Release\ + diff --git a/util/copyrights b/util/copyrights index f2f0fa150c2..a8c7e77ecb1 100644 --- a/util/copyrights +++ b/util/copyrights @@ -3388,6 +3388,7 @@ ./lib/isc/include/isc/stats.h C 2009,2012,2016,2018 ./lib/isc/include/isc/stdatomic.h C 2018 ./lib/isc/include/isc/stdio.h C 2000,2001,2004,2005,2006,2007,2013,2016,2018 +./lib/isc/include/isc/strerr.h C 2018 ./lib/isc/include/isc/string.h C 2000,2001,2003,2004,2005,2006,2007,2014,2016,2018 ./lib/isc/include/isc/symtab.h C 1996,1997,1998,1999,2000,2001,2004,2005,2006,2007,2009,2011,2012,2013,2016,2018 ./lib/isc/include/isc/task.h C 1998,1999,2000,2001,2003,2004,2005,2006,2007,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018