[PATCH:rgb] Use asprintf() instead of malloc/strcpy/strcat, if its available

Matthieu Herrb matthieu at herrb.eu
Sat Oct 25 10:47:59 PDT 2014


On Sat, Oct 25, 2014 at 10:32:11AM -0700, Alan Coopersmith wrote:
> Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
Reviewed-by: Matthieu Herrb <matthieu at herrb.eu>

> ---
>  configure.ac |    3 +++
>  showrgb.c    |    7 +++++++
>  2 files changed, 10 insertions(+)
> 
> diff --git a/configure.ac b/configure.ac
> index 534e41d..bf7974a 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -27,6 +27,7 @@ AC_INIT([rgb], [1.0.5],
>  	[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [rgb])
>  AC_CONFIG_SRCDIR([Makefile.am])
>  AC_CONFIG_HEADERS([config.h])
> +AC_USE_SYSTEM_EXTENSIONS
>  
>  # Initialize Automake
>  AM_INIT_AUTOMAKE([foreign dist-bzip2])
> @@ -37,6 +38,8 @@ m4_ifndef([XORG_MACROS_VERSION],
>  XORG_MACROS_VERSION(1.8)
>  XORG_DEFAULT_OPTIONS
>  
> +AC_CHECK_FUNCS([asprintf])
> +
>  PKG_CHECK_MODULES(RGB, xproto)
>  
>  AC_MSG_CHECKING([for rgb database location])
> diff --git a/showrgb.c b/showrgb.c
> index 31936ea..4796c5a 100644
> --- a/showrgb.c
> +++ b/showrgb.c
> @@ -124,9 +124,16 @@ dumprgb (const char *filename)
>      int lineno = 0;
>      int red, green, blue;
>  
> +#ifdef HAVE_ASPRINTF
> +    if (asprintf(&path, "%s.txt", filename) == -1) {
> +        perror (ProgramName);
> +        exit (1);
> +    }
> +#else
>      path = (char *)malloc(strlen(filename) + 5);
>      strcpy(path, filename);
>      strcat(path, ".txt");
> +#endif
>  
>      if (!(rgb = fopen(path, "r"))) {
>  	fprintf (stderr, "%s:  unable to open rgb database \"%s\"\n",
> -- 
> 1.7.9.2
> 
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel

-- 
Matthieu Herrb


More information about the xorg-devel mailing list