summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-02-02 08:00:34 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-02-02 08:00:34 +0100
commitd85db176e7d5bcb832ce0764d7db8b94090c4256 (patch)
treea031172b2bf29e1d6bba7f06d3f76f96c47b1ee2
parentscore: Fix simple timecounter support (diff)
downloadrtems-d85db176e7d5bcb832ce0764d7db8b94090c4256.tar.bz2
Filesystem: Export most generic path eval function
Add path length parameter to rtems_filesystem_eval_path_start_with_root_and_current() so that users may pass paths without a '\0' termination. Update #2558.
-rw-r--r--cpukit/libcsupport/include/rtems/libio_.h1
-rw-r--r--cpukit/libcsupport/src/chroot.c1
-rw-r--r--cpukit/libcsupport/src/sup_fs_eval_path.c26
3 files changed, 6 insertions, 22 deletions
diff --git a/cpukit/libcsupport/include/rtems/libio_.h b/cpukit/libcsupport/include/rtems/libio_.h
index c26782e015..0c5e9ed30b 100644
--- a/cpukit/libcsupport/include/rtems/libio_.h
+++ b/cpukit/libcsupport/include/rtems/libio_.h
@@ -328,6 +328,7 @@ rtems_filesystem_location_info_t *
rtems_filesystem_eval_path_start_with_root_and_current(
rtems_filesystem_eval_path_context_t *ctx,
const char *path,
+ size_t pathlen,
int eval_flags,
rtems_filesystem_global_location_t *const *global_root_ptr,
rtems_filesystem_global_location_t *const *global_current_ptr
diff --git a/cpukit/libcsupport/src/chroot.c b/cpukit/libcsupport/src/chroot.c
index b7c2891f6a..9ec4ad470f 100644
--- a/cpukit/libcsupport/src/chroot.c
+++ b/cpukit/libcsupport/src/chroot.c
@@ -44,6 +44,7 @@ int chroot( const char *path )
rtems_filesystem_eval_path_start_with_root_and_current(
&ctx,
path,
+ strlen( path ),
eval_flags,
&rtems_global_user_env.root_directory,
&rtems_global_user_env.current_directory
diff --git a/cpukit/libcsupport/src/sup_fs_eval_path.c b/cpukit/libcsupport/src/sup_fs_eval_path.c
index e120517918..459fa6bfc8 100644
--- a/cpukit/libcsupport/src/sup_fs_eval_path.c
+++ b/cpukit/libcsupport/src/sup_fs_eval_path.c
@@ -136,8 +136,8 @@ void rtems_filesystem_eval_path_continue(
}
}
-static rtems_filesystem_location_info_t *
-eval_path_start(
+rtems_filesystem_location_info_t *
+rtems_filesystem_eval_path_start_with_root_and_current(
rtems_filesystem_eval_path_context_t *ctx,
const char *path,
size_t pathlen,
@@ -167,25 +167,6 @@ eval_path_start(
}
rtems_filesystem_location_info_t *
-rtems_filesystem_eval_path_start_with_root_and_current(
- rtems_filesystem_eval_path_context_t *ctx,
- const char *path,
- int eval_flags,
- rtems_filesystem_global_location_t *const *global_root_ptr,
- rtems_filesystem_global_location_t *const *global_current_ptr
-)
-{
- return eval_path_start(
- ctx,
- path,
- strlen(path),
- eval_flags,
- global_root_ptr,
- global_current_ptr
- );
-}
-
-rtems_filesystem_location_info_t *
rtems_filesystem_eval_path_start(
rtems_filesystem_eval_path_context_t *ctx,
const char *path,
@@ -195,6 +176,7 @@ rtems_filesystem_eval_path_start(
return rtems_filesystem_eval_path_start_with_root_and_current(
ctx,
path,
+ strlen(path),
eval_flags,
&rtems_filesystem_root,
&rtems_filesystem_current
@@ -229,7 +211,7 @@ rtems_filesystem_eval_path_start_with_parent(
}
}
- currentloc = eval_path_start(
+ currentloc = rtems_filesystem_eval_path_start_with_root_and_current(
ctx,
parentpath,
parentpathlen,