mirror of
https://github.com/samba-team/samba.git
synced 2025-03-12 20:58:37 +03:00
s3: smbd: Fix incorrect logic exposed by fix for the security bug 12496 (CVE-2017-2619).
In a UNIX filesystem, the names "." and ".." by definition can *never* be symlinks - they are already reserved names. BUG: https://bugzilla.samba.org/show_bug.cgi?id=12721 Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Uri Simchoni <uri@samba.org> (cherry picked from commit ae17bebd250bdde5614b2ac17e53512f19fe9b68)
This commit is contained in:
parent
2e00feb278
commit
4a6d828e8f
@ -1277,8 +1277,11 @@ NTSTATUS check_reduced_name(connection_struct *conn, const char *fname)
|
|||||||
/* fname can't have changed in resolved_path. */
|
/* fname can't have changed in resolved_path. */
|
||||||
const char *p = &resolved_name[rootdir_len];
|
const char *p = &resolved_name[rootdir_len];
|
||||||
|
|
||||||
/* *p can be '\0' if fname was "." */
|
/*
|
||||||
if (*p == '\0' && ISDOT(fname)) {
|
* UNIX filesystem semantics, names consisting
|
||||||
|
* only of "." or ".." CANNOT be symlinks.
|
||||||
|
*/
|
||||||
|
if (ISDOT(fname) || ISDOTDOT(fname)) {
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user