mirror of
https://github.com/samba-team/samba.git
synced 2024-12-22 13:34:15 +03:00
tests: Get a file through an absolute symlink within a subdirectory
This shows that read_symlink_reparse() is broken when trying to replace an absolute with a relative filename within a share. read_symlink_reparse() is used only in openat_pathref_fsp_nosymlink() so far to chase symlinks for non-lcomp path components. Chasing lcomp symlinks is done through non_widelink_open(), which gets it right. Bug: https://bugzilla.samba.org/show_bug.cgi?id=15505 Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
parent
03af117693
commit
cc1657c585
1
selftest/knownfail.d/bug-15505
Normal file
1
selftest/knownfail.d/bug-15505
Normal file
@ -0,0 +1 @@
|
|||||||
|
^samba3.blackbox.smbclient_s3.*.follow\ local\ symlinks.*
|
@ -1492,6 +1492,17 @@ EOF
|
|||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Create a file to be accessed behind the symlink
|
||||||
|
touch $local_slink_target_dir/x
|
||||||
|
ret=$?
|
||||||
|
if [ $ret -ne 0 ]; then
|
||||||
|
echo "$out"
|
||||||
|
echo "failed - unable to create file"
|
||||||
|
ls -la $local_test_dir
|
||||||
|
false
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
# Can we cd into the symlink name and ls ?
|
# Can we cd into the symlink name and ls ?
|
||||||
tmpfile=$PREFIX/smbclient_interactive_prompt_commands
|
tmpfile=$PREFIX/smbclient_interactive_prompt_commands
|
||||||
cat >$tmpfile <<EOF
|
cat >$tmpfile <<EOF
|
||||||
@ -1521,6 +1532,34 @@ EOF
|
|||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Can we get the test file behind the symlink'ed dir?
|
||||||
|
tmpfile=$PREFIX/smbclient_interactive_prompt_commands
|
||||||
|
cat >$tmpfile <<EOF
|
||||||
|
get $share_test_dir\\sym_name\\x -
|
||||||
|
quit
|
||||||
|
EOF
|
||||||
|
cmd='CLI_FORCE_INTERACTIVE=yes $SMBCLIENT "$@" -U$USERNAME%$PASSWORD //$SERVER/local_symlinks -I $SERVER_IP $LOCAL_ADDARGS < $tmpfile 2>&1'
|
||||||
|
eval echo "$cmd"
|
||||||
|
out=$(eval $cmd)
|
||||||
|
ret=$?
|
||||||
|
rm -f $tmpfile
|
||||||
|
|
||||||
|
if [ $ret -ne 0 ]; then
|
||||||
|
echo "$out"
|
||||||
|
echo "failed accessing local_symlinks with error $ret"
|
||||||
|
false
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$out" | grep 'NT_STATUS_'
|
||||||
|
ret=$?
|
||||||
|
if [ $ret -eq 0 ]; then
|
||||||
|
echo "$out"
|
||||||
|
echo "failed - got an NT_STATUS error"
|
||||||
|
false
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
# CLEANUP
|
# CLEANUP
|
||||||
rm -f $local_slink_name
|
rm -f $local_slink_name
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user