bug-grep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] Use concat-filename in savedir, fix part of bug #21276.


From: Emanuele Giaquinta
Subject: [PATCH] Use concat-filename in savedir, fix part of bug #21276.
Date: Tue, 22 Dec 2009 11:50:23 +0100

* bootstrap.conf (gnulib_modules): Add concat-filename.
* lib/savedir.c (isdir1): Use concatenated_filename.
---
 bootstrap.conf |    1 +
 lib/savedir.c  |   28 ++++++++--------------------
 2 files changed, 9 insertions(+), 20 deletions(-)

diff --git a/bootstrap.conf b/bootstrap.conf
index 41d126e..1099fcf 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -24,6 +24,7 @@ atexit
 binary-io
 btowc
 closeout
+concat-filename
 dirent
 dirname
 do-release-commit-and-tag
diff --git a/lib/savedir.c b/lib/savedir.c
index c60e7c0..531c9a6 100644
--- a/lib/savedir.c
+++ b/lib/savedir.c
@@ -36,29 +36,23 @@
 #include <string.h>
 #include <fnmatch.h>
 #include "savedir.h"
+#include "concat-filename.h"
 
 extern int isdir (const char *path);
 
-char *path;
-size_t pathlen;
-
 static int
 isdir1 (const char *dir, const char *file)
 {
   int status;
-  int slash;
-  size_t dirlen = strlen (dir);
-  size_t filelen = strlen (file);
-  if ((dirlen + filelen + 2) > pathlen)
+  char *path;
+
+  status = 0;
+  path = concatenated_filename (dir, file, NULL);
+  if (path)
     {
-      path = calloc (dirlen + 1 + filelen + 1, sizeof (*path));
-      pathlen = dirlen + filelen + 2;
+      status = isdir (path);
+      free (path);
     }
-  strcpy (path, dir);
-  slash = (path[dirlen] != '/');
-  path[dirlen] = '/';
-  strcpy (path + dirlen + slash , file);
-  status  = isdir (path);
   return status;
 }
 
@@ -149,11 +143,5 @@ savedir (const char *dir, off_t name_size, struct exclude 
*included_patterns,
       free (name_space);
       return NULL;
     }
-  if (path)
-    {
-      free (path);
-      path = NULL;
-      pathlen = 0;
-    }
   return name_space;
 }
-- 
1.6.5




reply via email to

[Prev in Thread] Current Thread [Next in Thread]