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

Matt Turner mattst88 at gmail.com
Thu Aug 26 15:04:58 PDT 2010


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



More information about the xorg-devel mailing list