[PATCH] Replace malloc/strlen/strcpy with strdup.

Jeremy Huddleston jeremyhu at apple.com
Thu Aug 26 15:50:49 PDT 2010


Reviewed-by: Jeremy Huddleston <jeremyhu at apple.com>

On Aug 26, 2010, at 15:04, Matt Turner wrote:

> Signed-off-by: Matt Turner <mattst88 at gmail.com>
> ---
> Xi/extinit.c                          |    3 +--
> dix/extension.c                       |    6 ++----
> hw/kdrive/src/kxv.c                   |    9 +++------
> hw/xfree86/common/xf86Init.c          |    6 ++----
> hw/xfree86/common/xf86xv.c            |    9 +++------
> hw/xfree86/loader/loader.c            |    6 ++----
> hw/xfree86/parser/Flags.c             |    8 ++------
> hw/xfree86/parser/scan.c              |    3 +--
> hw/xquartz/mach-startup/bundle-main.c |    3 +--
> hw/xwin/glx/indirect.c                |    5 +----
> 10 files changed, 18 insertions(+), 40 deletions(-)
> 
> diff --git a/Xi/extinit.c b/Xi/extinit.c
> index eda4efb..7edadea 100644
> --- a/Xi/extinit.c
> +++ b/Xi/extinit.c
> @@ -1154,8 +1154,7 @@ void
> AssignTypeAndName(DeviceIntPtr dev, Atom type, char *name)
> {
>     dev->xinput_type = type;
> -    dev->name = (char *)malloc(strlen(name) + 1);
> -    strcpy(dev->name, name);
> +    dev->name = strdup(name);
> }
> 
> /***********************************************************************
> diff --git a/dix/extension.c b/dix/extension.c
> index c8e921a..6540b64 100644
> --- a/dix/extension.c
> +++ b/dix/extension.c
> @@ -96,7 +96,7 @@ AddExtension(char *name, int NumEvents, int NumErrors,
> 	free(ext);
> 	return NULL;
>     }
> -    ext->name = malloc(strlen(name) + 1);
> +    ext->name = strdup(name);
>     ext->num_aliases = 0;
>     ext->aliases = (char **)NULL;
>     if (!ext->name)
> @@ -105,7 +105,6 @@ AddExtension(char *name, int NumEvents, int NumErrors,
> 	free(ext);
> 	return((ExtensionEntry *) NULL);
>     }
> -    strcpy(ext->name,  name);
>     i = NumExtensions;
>     newexts = (ExtensionEntry **) realloc(extensions,
> 					   (i + 1) * sizeof(ExtensionEntry *));
> @@ -164,10 +163,9 @@ Bool AddExtensionAlias(char *alias, ExtensionEntry *ext)
>     if (!aliases)
> 	return FALSE;
>     ext->aliases = aliases;
> -    name = malloc(strlen(alias) + 1);
> +    name = strdup(alias);
>     if (!name)
> 	return FALSE;
> -    strcpy(name,  alias);
>     ext->aliases[ext->num_aliases] = name;
>     ext->num_aliases++;
>     return TRUE;
> diff --git a/hw/kdrive/src/kxv.c b/hw/kdrive/src/kxv.c
> index c07829a..50dc235 100644
> --- a/hw/kdrive/src/kxv.c
> +++ b/hw/kdrive/src/kxv.c
> @@ -377,8 +377,7 @@ KdXVInitAdaptors(
>       pa->ddGetPortAttribute = KdXVGetPortAttribute;
>       pa->ddQueryBestSize = KdXVQueryBestSize;
>       pa->ddQueryImageAttributes = KdXVQueryImageAttributes;
> -      if((pa->name = malloc(strlen(adaptorPtr->name) + 1)))
> -          strcpy(pa->name, adaptorPtr->name);
> +      pa->name = strdup(adaptorPtr->name);
> 
>       if(adaptorPtr->nEncodings &&
> 	(pEncode = calloc(adaptorPtr->nEncodings, sizeof(XvEncodingRec)))) {
> @@ -388,8 +387,7 @@ KdXVInitAdaptors(
>         {
> 	    pe->id = encodingPtr->id;
> 	    pe->pScreen = pScreen;
> -	    if((pe->name = malloc(strlen(encodingPtr->name) + 1)))
> -                strcpy(pe->name, encodingPtr->name);
> +	    pe->name = strdup(encodingPtr->name);
> 	    pe->width = encodingPtr->width;
> 	    pe->height = encodingPtr->height;
> 	    pe->rate.numerator = encodingPtr->rate.numerator;
> @@ -441,8 +439,7 @@ KdXVInitAdaptors(
> 	    pat->flags = attributePtr->flags;
> 	    pat->min_value = attributePtr->min_value;
> 	    pat->max_value = attributePtr->max_value;
> -	    if((pat->name = malloc(strlen(attributePtr->name) + 1)))
> -                strcpy(pat->name, attributePtr->name);
> +	    pat->name = strdup(attributePtr->name);
> 	}
> 	pa->nAttributes = adaptorPtr->nAttributes;
> 	pa->pAttributes = pAttribute;
> diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
> index 560519d..3c7fbcb 100644
> --- a/hw/xfree86/common/xf86Init.c
> +++ b/hw/xfree86/common/xf86Init.c
> @@ -1062,10 +1062,9 @@ ddxProcessArgument(int argc, char **argv, int i)
>     {
>       char *mp;
>       CHECK_FOR_REQUIRED_ARGUMENT();
> -      mp = malloc(strlen(argv[i + 1]) + 1);
> +      mp = strdup(argv[i + 1]);
>       if (!mp)
> 	FatalError("Can't allocate memory for ModulePath\n");
> -      strcpy(mp, argv[i + 1]);
>       xf86ModulePath = mp;
>       xf86ModPathFrom = X_CMDLINE;
>       return 2;
> @@ -1074,10 +1073,9 @@ ddxProcessArgument(int argc, char **argv, int i)
>     {
>       char *lf;
>       CHECK_FOR_REQUIRED_ARGUMENT();
> -      lf = malloc(strlen(argv[i + 1]) + 1);
> +      lf = strdup(argv[i + 1]);
>       if (!lf)
> 	FatalError("Can't allocate memory for LogFile\n");
> -      strcpy(lf, argv[i + 1]);
>       xf86LogFile = lf;
>       xf86LogFileFrom = X_CMDLINE;
>       return 2;
> diff --git a/hw/xfree86/common/xf86xv.c b/hw/xfree86/common/xf86xv.c
> index c1d3199..97be415 100644
> --- a/hw/xfree86/common/xf86xv.c
> +++ b/hw/xfree86/common/xf86xv.c
> @@ -429,8 +429,7 @@ xf86XVInitAdaptors(
>       pa->ddGetPortAttribute = xf86XVGetPortAttribute;
>       pa->ddQueryBestSize = xf86XVQueryBestSize;
>       pa->ddQueryImageAttributes = xf86XVQueryImageAttributes;
> -      if((pa->name = malloc(strlen(adaptorPtr->name) + 1)))
> -	  strcpy(pa->name, adaptorPtr->name);
> +      pa->name = strdup(adaptorPtr->name);
> 
>       if(adaptorPtr->nEncodings &&
> 	(pEncode = calloc(adaptorPtr->nEncodings, sizeof(XvEncodingRec)))) {
> @@ -440,8 +439,7 @@ xf86XVInitAdaptors(
> 	{
> 	    pe->id = encodingPtr->id;
> 	    pe->pScreen = pScreen;
> -	    if((pe->name = malloc(strlen(encodingPtr->name) + 1)))
> -		strcpy(pe->name, encodingPtr->name);
> +		pe->name = strdup(encodingPtr->name);
> 	    pe->width = encodingPtr->width;
> 	    pe->height = encodingPtr->height;
> 	    pe->rate.numerator = encodingPtr->rate.numerator;
> @@ -493,8 +491,7 @@ xf86XVInitAdaptors(
> 	    pat->flags = attributePtr->flags;
> 	    pat->min_value = attributePtr->min_value;
> 	    pat->max_value = attributePtr->max_value;
> -	    if((pat->name = malloc(strlen(attributePtr->name) + 1)))
> -		strcpy(pat->name, attributePtr->name);
> +		pat->name = strdup(attributePtr->name);
> 	}
> 	pa->nAttributes = adaptorPtr->nAttributes;
> 	pa->pAttributes = pAttribute;
> diff --git a/hw/xfree86/loader/loader.c b/hw/xfree86/loader/loader.c
> index 6a4c089..e043bb2 100644
> --- a/hw/xfree86/loader/loader.c
> +++ b/hw/xfree86/loader/loader.c
> @@ -212,10 +212,8 @@ LoaderOpen(const char *module, const char *cname, int handle,
>     refCount[new_handle] = 1;
> 
>     tmp = _LoaderListPush();
> -    tmp->name = malloc(strlen(module) + 1);
> -    strcpy(tmp->name, module);
> -    tmp->cname = malloc(strlen(cname) + 1);
> -    strcpy(tmp->cname, cname);
> +    tmp->name = strdup(module);
> +    tmp->cname = strdup(cname);
>     tmp->handle = new_handle;
>     tmp->module = moduleseq++;
> 
> diff --git a/hw/xfree86/parser/Flags.c b/hw/xfree86/parser/Flags.c
> index 7fafb6c..a9149c2 100644
> --- a/hw/xfree86/parser/Flags.c
> +++ b/hw/xfree86/parser/Flags.c
> @@ -364,12 +364,8 @@ xf86optionListCreate( const char **options, int count, int used )
> 	}
> 	for (i = 0; i < count; i += 2)
> 	{
> -		t1 = malloc (sizeof (char) *
> -				(strlen (options[i]) + 1));
> -		strcpy (t1, options[i]);
> -		t2 = malloc (sizeof (char) *
> -				(strlen (options[i + 1]) + 1));
> -		strcpy (t2, options[i + 1]);
> +		t1 = strdup(options[i]);
> +		t2 = strdup(options[i + 1]);
> 		p = addNewOption2 (p, t1, t2, used);
> 	}
> 
> diff --git a/hw/xfree86/parser/scan.c b/hw/xfree86/parser/scan.c
> index 5312143..9f63570 100644
> --- a/hw/xfree86/parser/scan.c
> +++ b/hw/xfree86/parser/scan.c
> @@ -1088,8 +1088,7 @@ void
> xf86setSection (char *section)
> {
> 	free(configSection);
> -	configSection = malloc(strlen (section) + 1);
> -	strcpy (configSection, section);
> +	configSection = strdup(section);
> }
> 
> /* 
> diff --git a/hw/xquartz/mach-startup/bundle-main.c b/hw/xquartz/mach-startup/bundle-main.c
> index 6f7bbfd..7ac5469 100644
> --- a/hw/xquartz/mach-startup/bundle-main.c
> +++ b/hw/xquartz/mach-startup/bundle-main.c
> @@ -479,12 +479,11 @@ static void setup_env(void) {
>         pds = LAUNCHD_ID_PREFIX".X11";
>     }
> 
> -    server_bootstrap_name = malloc(sizeof(char) * (strlen(pds) + 1));
> +    server_bootstrap_name = strdup(pds);
>     if(!server_bootstrap_name) {
>         fprintf(stderr, "X11.app: Memory allocation error.\n");
>         exit(1);
>     }
> -    strcpy(server_bootstrap_name, pds);
>     setenv("X11_PREFS_DOMAIN", server_bootstrap_name, 1);
> 
>     len = strlen(server_bootstrap_name);
> diff --git a/hw/xwin/glx/indirect.c b/hw/xwin/glx/indirect.c
> index 1cf82a7..3891885 100755
> --- a/hw/xwin/glx/indirect.c
> +++ b/hw/xwin/glx/indirect.c
> @@ -444,7 +444,7 @@ glxLogExtensions(const char *prefix, const char *extensions)
> {
>   int length = 0;
>   char *strl;
> -  char *str = malloc(strlen(extensions) + 1);
> +  char *str = strdup(extensions);
> 
>   if (str == NULL)
>     {
> @@ -452,9 +452,6 @@ glxLogExtensions(const char *prefix, const char *extensions)
>       return;
>     }
> 
> -  str[strlen(extensions)] = '\0';
> -  strncpy (str, extensions, strlen(extensions));
> -
>   strl = strtok(str, " ");
>   ErrorF("%s%s", prefix, strl);
>   length = strlen(prefix) + strlen(strl);
> -- 
> 1.7.1
> 
> _______________________________________________
> 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



More information about the xorg-devel mailing list