Use module_dir instead of lp_path().
authorWayne Davison <wayned@samba.org>
Mon, 2 Jul 2007 22:06:48 +0000 (22:06 +0000)
committerWayne Davison <wayned@samba.org>
Mon, 2 Jul 2007 22:06:48 +0000 (22:06 +0000)
log.c
t_stub.c
util.c

diff --git a/log.c b/log.c
index b837900..cd5cd84 100644 (file)
--- a/log.c
+++ b/log.c
@@ -52,6 +52,7 @@ extern iconv_t ic_chck;
 extern iconv_t ic_send, ic_recv;
 #endif
 extern char curr_dir[];
+extern char *module_dir;
 extern unsigned int module_dirlen;
 
 static int log_initialised;
@@ -580,7 +581,7 @@ static void log_formatted(enum logcode code, const char *format, const char *op,
                        n = timestring(time(NULL));
                        break;
                case 'P':
-                       n = lp_path(module_id);
+                       n = module_dir;
                        break;
                case 'u':
                        n = auth_user;
index a935fcb..1fa3ee2 100644 (file)
--- a/t_stub.c
+++ b/t_stub.c
@@ -28,6 +28,7 @@ int human_readable = 0;
 int module_dirlen = 0;
 mode_t orig_umask = 002;
 char *partial_dir;
+char *module_dir;
 struct filter_list_struct server_filter_list;
 
  void rprintf(UNUSED(enum logcode code), const char *format, ...)
@@ -73,11 +74,6 @@ struct filter_list_struct server_filter_list;
        return 0;
 }
 
- char *lp_path(UNUSED(int mod))
-{
-       return NULL;
-}
-
  const char *who_am_i(void)
 {
        return "tester";
diff --git a/util.c b/util.c
index 4e03a19..98f38f1 100644 (file)
--- a/util.c
+++ b/util.c
@@ -28,6 +28,7 @@ extern int module_id;
 extern int modify_window;
 extern int relative_paths;
 extern int human_readable;
+extern char *module_dir;
 extern unsigned int module_dirlen;
 extern mode_t orig_umask;
 extern char *partial_dir;
@@ -749,7 +750,7 @@ unsigned int clean_fname(char *name, BOOL collapse_dot_dot)
  * rootdir will be ignored to avoid expansion of the string.
  *
  * The rootdir string contains a value to use in place of a leading slash.
- * Specify NULL to get the default of lp_path(module_id).
+ * Specify NULL to get the default of "module_dir".
  *
  * The depth var is a count of how many '..'s to allow at the start of the
  * path.  If symlink is set, combine its value with the "p" value to get
@@ -778,7 +779,7 @@ char *sanitize_path(char *dest, const char *p, const char *rootdir, int depth,
                int plen = strlen(p);
                if (*p == '/') {
                        if (!rootdir)
-                               rootdir = lp_path(module_id);
+                               rootdir = module_dir;
                        rlen = strlen(rootdir);
                        depth = 0;
                        p++;
@@ -883,8 +884,10 @@ int push_dir(const char *dir, int set_path_only)
        if (len == 1 && *dir == '.')
                return 1;
 
-       if ((*dir == '/' ? len : curr_dir_len + 1 + len) >= sizeof curr_dir)
+       if ((*dir == '/' ? len : curr_dir_len + 1 + len) >= sizeof curr_dir) {
+               errno = ENAMETOOLONG;
                return 0;
+       }
 
        if (!set_path_only && chdir(dir))
                return 0;