lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 22 Jul 2013 21:26:32 +0200 From: Andi Shyti <andi@...zian.org> To: sfrench@...ba.org Cc: linux-cifs@...r.kernel.org, samba-technical@...ts.samba.org, linux-kernel@...r.kernel.org Subject: Re: [PATCH 2/2] cifs: file: initialize oparms.reconnect before using it This is patch 1/1, not 2/2... messed up with git. Andi On Mon, Jul 22, 2013 at 09:24:00PM +0200, Andi Shyti wrote: > In the cifs_reopen_file function, if the following statement is > asserted: > > (tcon->unix_ext && cap_unix(tcon->ses) && > (CIFS_UNIX_POSIX_PATH_OPS_CAP & > (tcon->fsUnixInfo.Capability))) > > and we succeed to open with cifs_posix_open, the function jumps > to the label reopen_success and checks for oparms.reconnect > which is not initialized. > > To avoid this the oparms structure initialization is anticipated > before the if statement. > > Signed-off-by: Andi Shyti <andi@...zian.org> > --- > fs/cifs/file.c | 18 +++++++++--------- > 1 file changed, 9 insertions(+), 9 deletions(-) > > diff --git a/fs/cifs/file.c b/fs/cifs/file.c > index 1e57f36..fbeaf45 100644 > --- a/fs/cifs/file.c > +++ b/fs/cifs/file.c > @@ -632,6 +632,15 @@ cifs_reopen_file(struct cifsFileInfo *cfile, bool can_flush) > else > oplock = 0; > > + oparms.tcon = tcon; > + oparms.cifs_sb = cifs_sb; > + oparms.desired_access = desired_access; > + oparms.create_options = create_options; > + oparms.disposition = disposition; > + oparms.path = full_path; > + oparms.fid = &cfile->fid; > + oparms.reconnect = true; > + > if (tcon->unix_ext && cap_unix(tcon->ses) && > (CIFS_UNIX_POSIX_PATH_OPS_CAP & > le64_to_cpu(tcon->fsUnixInfo.Capability))) { > @@ -663,15 +672,6 @@ cifs_reopen_file(struct cifsFileInfo *cfile, bool can_flush) > if (server->ops->get_lease_key) > server->ops->get_lease_key(inode, &cfile->fid); > > - oparms.tcon = tcon; > - oparms.cifs_sb = cifs_sb; > - oparms.desired_access = desired_access; > - oparms.create_options = create_options; > - oparms.disposition = disposition; > - oparms.path = full_path; > - oparms.fid = &cfile->fid; > - oparms.reconnect = true; > - > /* > * Can not refresh inode by passing in file_info buf to be returned by > * CIFSSMBOpen and then calling get_inode_info with returned buf since > -- > 1.8.3.2 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists