mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-07 13:43:51 +00:00
cifs: fix off-by-one bug in build_unc_path_to_root
commit1fc29baced
upstream. commit839db3d10a
(cifs: fix up handling of prefixpath= option) changed the code such that the vol->prepath no longer contained a leading delimiter and then fixed up the places that accessed that field to account for that change. One spot in build_unc_path_to_root was missed however. When doing the pointer addition on pos, that patch failed to account for the fact that we had already incremented "pos" by one when adding the length of the prepath. This caused a buffer overrun by one byte. This patch fixes the problem by correcting the handling of "pos". Reported-by: Marcus Moeller <marcus.moeller@gmx.ch> Reported-by: Ken Fallon <ken.fallon@gmail.com> Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
a4f30a3056
commit
cd73e0b96b
@ -3332,8 +3332,8 @@ build_unc_path_to_root(const struct smb_vol *vol,
|
||||
pos = full_path + unc_len;
|
||||
|
||||
if (pplen) {
|
||||
*pos++ = CIFS_DIR_SEP(cifs_sb);
|
||||
strncpy(pos, vol->prepath, pplen);
|
||||
*pos = CIFS_DIR_SEP(cifs_sb);
|
||||
strncpy(pos + 1, vol->prepath, pplen);
|
||||
pos += pplen;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user