Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Sat, 27 May 2017 21:46:13 -0400
From: Rich Felker <>
Subject: Re: [PATCH] fix a invalid conversion from 'void*' to 'char*'

On Sat, May 13, 2017 at 11:42:01AM +0200, wrote:
> From: Ming Liu <>
> A compiling warning is observed with gcc -Wconversion option, fixed
> by casting 'void*' to 'char*'.
> Signed-off-by: Ming Liu <>
> ---
>  include/string.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> diff --git a/include/string.h b/include/string.h
> index ff9badb..b6b2d82 100644
> --- a/include/string.h
> +++ b/include/string.h
> @@ -85,7 +85,7 @@ size_t strlcpy (char *, const char *, size_t);
>  #endif
>  #ifdef _GNU_SOURCE
> -#define	strdupa(x)	strcpy(alloca(strlen(x)+1),x)
> +#define	strdupa(x)	strcpy((char*)alloca(strlen(x)+1),x)
>  int strverscmp (const char *, const char *);
>  int strcasecmp_l (const char *, const char *, locale_t);
>  int strncasecmp_l (const char *, const char *, size_t, locale_t);
> -- 
> 2.7.4

Apologies for not replying sooner; I've been behind on everything.

Generally it's the intent of GCC not to produce warnings for code in
or expanded from system headers. If you're getting warnings like this,
check that you don't have an installation problem (or maybe explicit
-I of system header path) that confuses GCC and makes it think these
are not system headers.

Casting the return value of allocation functions is generally
Considered Harmful in C, and not something you want to be doing, but
perhaps the problems is arising when this macro is used in C++ code?
Can you be more specific about how you encountered it? If it really is
invalid as C++ perhaps something should be changed since the header is
intended to be usable as C++.


Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.