diff options
author | Volker Lendecke <vlendec@samba.org> | 2007-01-31 13:09:07 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:17:34 -0500 |
commit | 37a3339a1891f0189ff62891e6be85ace23efc33 (patch) | |
tree | c9ebe817b0b99c677b46df209b3a9094c77c20d1 /source3/smbd/service.c | |
parent | 6490e114b8e9ffc9d35a0eaee66f9bdef65708fc (diff) | |
download | samba-37a3339a1891f0189ff62891e6be85ace23efc33.tar.gz samba-37a3339a1891f0189ff62891e6be85ace23efc33.tar.xz samba-37a3339a1891f0189ff62891e6be85ace23efc33.zip |
r21082: Make canonicalize_path static to service.c -- we do have conn->connectpath
(This used to be commit 06f58096e3785d0e2e0b9f2053d4975e44568e15)
Diffstat (limited to 'source3/smbd/service.c')
-rw-r--r-- | source3/smbd/service.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/source3/smbd/service.c b/source3/smbd/service.c index 9efe63a82c1..ff6f9d1c1a6 100644 --- a/source3/smbd/service.c +++ b/source3/smbd/service.c @@ -22,6 +22,31 @@ extern userdom_struct current_user_info; +BOOL canonicalize_path(connection_struct *conn, pstring path) +{ +#ifdef REALPATH_TAKES_NULL + char *resolved_name = SMB_VFS_REALPATH(conn,path,NULL); + if (!resolved_name) { + return False; + } + pstrcpy(path, resolved_name); + SAFE_FREE(resolved_name); + return True; +#else +#ifdef PATH_MAX + char resolved_name_buf[PATH_MAX+1]; +#else + pstring resolved_name_buf; +#endif + char *resolved_name = SMB_VFS_REALPATH(conn,path,resolved_name_buf); + if (!resolved_name) { + return False; + } + pstrcpy(path, resolved_name); + return True; +#endif /* REALPATH_TAKES_NULL */ +} + /**************************************************************************** Ensure when setting connectpath it is a canonicalized (no ./ // or ../) absolute path stating in / and not ending in /. |