All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff Layton <jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Pavel Shilovsky <pshilovsky-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
Cc: Dan Carpenter
	<dan.carpenter-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>,
	Steve French <smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	samba-technical-w/Ol4Ecudpl8XjKLYN78aQ@public.gmane.org
Subject: Re: CIFS: Move readpage code to ops struct
Date: Thu, 25 Oct 2012 09:50:32 -0400	[thread overview]
Message-ID: <20121025095032.4cad08db@corrin.poochiereds.net> (raw)
In-Reply-To: <CAKywueQY9bRT08ZPXXoRTVNqtwfMRu5WxZb2vacFLB1AkJ3K=w@mail.gmail.com>

On Thu, 25 Oct 2012 17:34:38 +0400
Pavel Shilovsky <pshilovsky-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org> wrote:

> 2012/10/25 Dan Carpenter <dan.carpenter-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>:
> > Hello Pavel Shilovsky,
> >
> > This is a semi-automatic email about new static checker warnings.
> >
> > The patch f9c6e234c3ca: "CIFS: Move readpage code to ops struct" from
> > Sep 18, 2012, leads to the following Smatch complaint:
> >
> > fs/cifs/file.c:2954 cifs_read()
> >          warn: variable dereferenced before check 'tcon->ses' (see line 2932)
> >
> > fs/cifs/file.c
> >   2931          tcon = tlink_tcon(open_file->tlink);
> >   2932          server = tcon->ses->server;
> >                          ^^^^^^^^^^^
> > New dereference.
> >
> >   2933
> >   2934          if (!server->ops->sync_read) {
> >   2935                  free_xid(xid);
> >   2936                  return -ENOSYS;
> >   2937          }
> >   2938
> >   2939          if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_RWPIDFORWARD)
> >   2940                  pid = open_file->pid;
> >   2941          else
> >   2942                  pid = current->tgid;
> >   2943
> >   2944          if ((file->f_flags & O_ACCMODE) == O_WRONLY)
> >   2945                  cFYI(1, "attempting read on write only file instance");
> >   2946
> >   2947          for (total_read = 0, cur_offset = read_data; read_size > total_read;
> >   2948               total_read += bytes_read, cur_offset += bytes_read) {
> >   2949                  current_read_size = min_t(uint, read_size - total_read, rsize);
> >   2950                  /*
> >   2951                   * For windows me and 9x we do not want to request more than it
> >   2952                   * negotiated since it will refuse the read then.
> >   2953                   */
> >   2954                  if ((tcon->ses) && !(tcon->ses->capabilities &
> >                              ^^^^^^^^^
> > Old check.
> >
> >   2955                                  tcon->ses->server->vals->cap_large_files)) {
> 
> I don't think that tcon->ses can be NULL here - it seems that we can
> remove this check. Thoughts?
> 

Agreed. I think that this is a holdover from some really old code
before we fixed up all the refcounting and object lifetime. The tcon
should be holding a reference to its session object, which in turn
holds a reference to the server object. If tcon->ses is NULL then
something is very, very wrong. I believe you can just remove that check.


> >   2956                          current_read_size = min_t(uint, current_read_size,
> >
> > regards,
> > dan carpenter
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
> > the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> 
> 


-- 
Jeff Layton <jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>

      reply	other threads:[~2012-10-25 13:50 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-25 11:28 CIFS: Move readpage code to ops struct Dan Carpenter
     [not found] ` <20121025112820.GA5802-mgFCXtclrQlZLf2FXnZxJA@public.gmane.org>
2012-10-25 13:34   ` Pavel Shilovsky
2012-10-25 13:50     ` Jeff Layton [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20121025095032.4cad08db@corrin.poochiereds.net \
    --to=jlayton-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
    --cc=dan.carpenter-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org \
    --cc=linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=pshilovsky-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org \
    --cc=samba-technical-w/Ol4Ecudpl8XjKLYN78aQ@public.gmane.org \
    --cc=smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.