On Thu, Dec 13, 2018 at 01:09:25PM +0100, Tom de Vries wrote:
> 2018-12-13  Tom de Vries  <tdevr...@suse.de>
> 
>       * affinity-fmt.c (gomp_print_string): New function, factored out of ...
>       (omp_display_affinity, gomp_display_affinity_thread): ... here, and ...
>       * fortran.c (omp_display_affinity_): ... here.
>       * libgomp.h (gomp_print_string): Declare.
>       * config/nvptx/affinity-fmt.c: New file.  Include affinity-fmt.c,
>       undefining HAVE_GETPID and HAVE_GETHOSTNAME, and mapping fwrite to
>       write.

> +/* The nvptx newlib implementation does not support fwrite, but it does 
> support
> +   write.  Map fwrite to write for size == 1.  */
> +#undef fwrite
> +#define fwrite(ptr, size, nmemb, stream) \
> +  ((size) == 1 ? write (1, (ptr), (nmemb)) : 0)

Why not
  write (1, (ptr), (nmemb) * (size))
I know it doesn't handle the overflow case properly, but the callers are
using 1 and it actually isn't a security threat if it prints fewer chars
than it should.  We don't have anything where we'd rely on fwrite failing
when stuff overflows...

Ok with that change (plus adjust the comment).

        Jakub

Reply via email to