[PATCH 09/11] Convert malloc+sprintf pairs into X*asprintf() calls

Julien Cristau jcristau at debian.org
Tue Nov 30 02:21:15 PST 2010


On Mon, Nov 29, 2010 at 20:57:46 -0800, Alan Coopersmith wrote:

> diff --git a/hw/xfree86/loader/loadmod.c b/hw/xfree86/loader/loadmod.c
> index 06d082b..751fec6 100644
> --- a/hw/xfree86/loader/loadmod.c
> +++ b/hw/xfree86/loader/loadmod.c
> @@ -406,22 +406,22 @@ FindModuleInSubdir(const char *dirpath, const char *module)
>   
>          snprintf(tmpBuf, PATH_MAX, "lib%s.so", module);
>          if (strcmp(direntry->d_name, tmpBuf) == 0) {
> -            ret = malloc(strlen(tmpBuf) + strlen(dirpath) + 1);
> -            sprintf(ret, "%s%s", dirpath, tmpBuf);
> +            if (Xasprintf(&ret, "%s%s", dirpath, tmpBuf) == -1)
> +		ret = NULL;
>              break;
>          }
>  
>          snprintf(tmpBuf, PATH_MAX, "%s_drv.so", module);
>          if (strcmp(direntry->d_name, tmpBuf) == 0) {
> -            ret = malloc(strlen(tmpBuf) + strlen(dirpath) + 1);
> -            sprintf(ret, "%s%s", dirpath, tmpBuf);
> +            if (Xasprintf(&ret, "%s%s", dirpath, tmpBuf) == -1)
> +		ret = NULL;
>              break;
>          }
>  
>          snprintf(tmpBuf, PATH_MAX, "%s.so", module);
>          if (strcmp(direntry->d_name, tmpBuf) == 0) {
> -            ret = malloc(strlen(tmpBuf) + strlen(dirpath) + 1);
> -            sprintf(ret, "%s%s", dirpath, tmpBuf);
> +            if (Xasprintf(&ret, "%s%s", dirpath, tmpBuf) == -1)
> +		ret = NULL;
>              break;
>          }
>      }

Should these use XNFasprintf?

Cheers,
Julien


More information about the xorg-devel mailing list