These occurrences of sprintf in C code don't normally trigger the deprecation
warning at least with recent macOS, because macOS by default now enables
_FORTIFY_SOURCE (see the code setting it in
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.0.sdk/usr/include/_types.h
when originally unset), which for C code hides the declaration of sprintf (along
with its deprecation annotation) in
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.0.sdk/usr/include/stdio.h
with a macro (expanding to __builtin___sprintf_chk) in
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.0.sdk/usr/include/secure/_stdio.h.
But they started to trigger when I did an experimental -fsanitize=address build,
because
<https://github.com/llvm/llvm-project/commit/b4f819086a61b5a843f0171a7467c5184ba1b086>
"Disable source fortification on Darwin with AddressSanitizer" predefines
-D_FORTIFY_SOURCE=0 in that case.
While there might be ways to clean this code up to use something better than the
deprecated sprintf, don't bother too much with this 3rd-party, build-time--only
code and just silence any potential deprecation warnings.
Change-Id: I9f223a0ad50b2729b5d9af2db588fe9f82d0b07f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142534
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
After 09841225fc "soltools: fix
-Werror=format-overflow" changed the sprintf into an snprintf, at least the
Fedora 29 "gcc (GCC) 8.2.1 20181011 (Red Hat 8.2.1-4)" now complains about
> [C ] soltools/mkdepend/include.c
> soltools/mkdepend/include.c: In function ‘remove_dotdot.constprop’:
> soltools/mkdepend/include.c:246:42: error: ‘snprintf’ output may be truncated before the last format character [-Werror=format-truncation=]
> int n = snprintf(buf, BUFSIZ, "%s%s%s", dir, *dir ? "/" : "", component);
> ^
> soltools/mkdepend/include.c:246:13: note: ‘snprintf’ output 1 or more bytes (assuming 8193) into a destination of size 8192
> int n = snprintf(buf, BUFSIZ, "%s%s%s", dir, *dir ? "/" : "", component);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This all looks not very helpful, lets limit the silencing to just GCC 8.2 (in
the hopes that later versions of GCC won't emit that warning any more, anyway).
Change-Id: I006964e4f32bbb52b6b90288e2d623797b8d38ea
Reviewed-on: https://gerrit.libreoffice.org/63068
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
error: ‘sprintf’ may write a terminating nul past the end of the destination
(Why does GCC8 complain about this now and not before?)
Change-Id: I62cd9dec02d313b5aff1afc4cadf38ca1909ffb1
Reviewed-on: https://gerrit.libreoffice.org/61381
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
...moving notdotdot to include.c (and some other decls to def.h)
Change-Id: I5d05988aca3daed978c2302380f69d1373081571
Reviewed-on: https://gerrit.libreoffice.org/60537
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
...no reason to not have it enabled for URE C include files and what
little real C code is still left. (But note that Clang ignores that
warning.)
Change-Id: Ia6940f9f940a0c226e9b724331d65c9862ce32e6
2004/03/17 12:35:33 waratah 1.2.68.1: #i1858# add return types to subroutines
add include file for string routines
add a couple of forward declarations for internal routines