On Mon, Jan 21, 2019, at 4:58 PM, Tim Rühsen wrote: > On 1/8/19 2:22 PM, Hugo Beauzée-Luyssen wrote: > > On Thu, Dec 20, 2018, at 2:53 AM, Bruno Haible wrote: > >> Hi, > >> > >> Hugo Beauzée-Luyssen wrote: > >>> 12-14 19:10:02.633 F DEBUG : pid: 31664, tid: 32389, name: VlcObject > >>> >>> org.videolan.vlc <<< > >>> 12-14 19:10:02.633 F DEBUG : signal 6 (SIGABRT), code -1 (SI_QUEUE), > >>> fault addr -------- > >>> 12-14 19:10:02.633 F DEBUG : Abort message: 'FORTIFY: %n not allowed on > >>> Android' > >> > >> Indeed, %n in *printf is not allowed on Android, see > >> https://android.googlesource.com/platform/bionic/+/master/libc/stdio/vfprintf.cpp > >> https://android.googlesource.com/platform/bionic/+/master/docs/status.md > >> > >>> diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c > >>> index af3fcd1c7..e41d5f706 100644 > >>> --- a/lib/vasnprintf.c > >>> +++ b/lib/vasnprintf.c > >>> @@ -4874,7 +4874,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, > >>> # if ! (((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) > >>> \ > >>> && !defined __UCLIBC__) > >>> \ > >>> || (defined __APPLE__ && defined __MACH__) > >>> \ > >>> - || (defined _WIN32 && ! defined __CYGWIN__)) > >>> + || (defined _WIN32 && ! defined __CYGWIN__) > >>> \ > >>> + || defined __ANDROID__) > >>> fbp[1] = '%'; > >>> fbp[2] = 'n'; > >>> fbp[3] = '\0'; > >> > >> The patch looks good at first sight. But when you look at the comments a > >> couple of lines before it, you see that one can avoid %n only > >> if snprintf behaves well enough. To this effect, can you please report > >> the configure results (from a *native* Android compilation, not a cross- > >> compilation) of these tests: > >> > >> 1 = checking whether printf supports size specifiers as in C99... > >> 2 = checking whether printf supports 'long double' arguments... > >> 3 = checking whether printf supports infinite 'double' arguments... > >> 4 = checking whether printf supports infinite 'long double' arguments... > >> 5 = checking whether printf supports the 'a' and 'A' directives... > >> 6 = checking whether printf supports the 'F' directive... > >> 7 = checking whether printf supports the 'n' directive... > >> 8 = checking whether printf supports the 'ls' directive... > >> 9 = checking whether printf supports POSIX/XSI format strings with > >> positions... > >> 10 = checking whether printf supports the grouping flag... > >> 11 = checking whether printf supports the left-adjust flag correctly... > >> 12 = checking whether printf supports the zero flag correctly... > >> 13 = checking whether printf supports large precisions... > >> 14 = checking whether printf survives out-of-memory conditions... > >> 15 = checking for snprintf... > >> 16 = checking whether snprintf truncates the result as in C99... > >> 17 = checking whether snprintf returns a byte count as in C99... > >> 18 = checking whether snprintf fully supports the 'n' directive... > >> 19 = checking whether snprintf respects a size of 1... > >> 20 = checking whether vsnprintf respects a zero size as in C99... > >> > >> You should find these in the configure output of any package that > >> uses gnulib's 'vasnprintf' module. If you don't have one at hand, > >> create one using > >> ./gnulib-tool --create-testdir --dir=testdir --single-configure > >> vasnprintf > >> > >> Thanks. > >> > >> Bruno > >> > > > > Hi, > > > > I'm probably missing something, but for me this only seems to test for > > snprintf/printf/vasnprintf availability (including running configure in the > > generated test directory) > > I would really like to see the patch in gnulib as soon as possible. > > @hugo If it's not too much hassle, could you please provide the > requested information ? > > Regards, Tim >
Hi, I'd love to, but I failed to fetch those so far. The provided command line didn't return any valuable information, and simply tested for the presence of various printf family function. Regards, -- Hugo Beauzée-Luyssen h...@beauzee.fr