From 192062c4a60d107cd762183b937249bffd9edde7 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Mon, 3 Jul 2006 21:07:46 +0000 Subject: r16789: Fix bug #3909, when using ea's getting a directory tries to read ea's from an msdfs link. Stop it from doing that. Jerry please merge to 3.0.23. Jeremy. (This used to be commit 95e5ace6b4f348a3244b6a3ea0fd8badf55271f5) --- source3/smbd/trans2.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'source3/smbd/trans2.c') diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c index 27fd62be7f..9030737b1b 100644 --- a/source3/smbd/trans2.c +++ b/source3/smbd/trans2.c @@ -1091,6 +1091,8 @@ static BOOL get_lanman2_dir_entry(connection_struct *conn, while (!found) { BOOL got_match; + BOOL ms_dfs_link = False; + /* Needed if we run out of space */ long curr_dirpos = prev_dirpos = dptr_TellDir(conn->dirptr); dname = dptr_ReadDirName(conn->dirptr,&curr_dirpos,&sbuf); @@ -1154,8 +1156,7 @@ static BOOL get_lanman2_dir_entry(connection_struct *conn, if(lp_host_msdfs() && lp_msdfs_root(SNUM(conn)) && - is_msdfs_link(NULL,conn, pathreal, NULL, NULL, - &sbuf)) { + ((ms_dfs_link = is_msdfs_link(NULL,conn, pathreal, NULL, NULL, &sbuf)) == True)) { DEBUG(5,("get_lanman2_dir_entry: Masquerading msdfs link %s as a directory\n", pathreal)); sbuf.st_mode = (sbuf.st_mode & 0xFFF) | S_IFDIR; @@ -1168,7 +1169,11 @@ static BOOL get_lanman2_dir_entry(connection_struct *conn, } } - mode = dos_mode(conn,pathreal,&sbuf); + if (ms_dfs_link) { + mode = dos_mode_msdfs(conn,pathreal,&sbuf); + } else { + mode = dos_mode(conn,pathreal,&sbuf); + } if (!dir_check_ftype(conn,mode,dirtype)) { DEBUG(5,("[%s] attribs didn't match %x\n",fname,dirtype)); -- cgit