Skip to contentSkip to conversation

cifs: Split lanman auth from CIFS_SessSetup()

DISCUSSION Dan Carpenter 2 participants 2 messages Jul 7, 2014 – Jul 14, 2014

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

Hello Sachin Prabhu,

The patch 4b26c7b1fc36: "cifs: Split lanman auth from CIFS_SessSetup()" from Jun 16, 2014, leads to the following static checker warning:

	fs/cifs/sess.c:797 CIFS_SessSetup()
	warn: possible memory leak of 'sess_data'

fs/cifs/sess.c
784 sess_data = kzalloc(sizeof(struct sess_data), GFP_KERNEL);
785 if (!sess_data)
786 return -ENOMEM;

   787          sess_data->xid = xid;
   788          sess_data->ses = ses;
   789          sess_data->buf0_type = CIFS_NO_BUFFER;
   790          sess_data->nls_cp = (struct nls_table *) nls_cp;
   791  
   792          type = select_sectype(ses->server, ses->sectype);
   793          cifs_dbg(FYI, "sess setup type %d\n", type);
   794          if (type == Unspecified) {
   795                  cifs_dbg(VFS,
   796                          "Unable to select appropriate authentication method!");
   797                  return -EINVAL;
                        ^^^^^^^^^^^^^^

missing kfree().

798 }

regards,
dan carpenter

#1 lore raw
Quoted 25 lines · Dan Carpenter

Hello Sachin Prabhu,

The patch 4b26c7b1fc36: "cifs: Split lanman auth from CIFS_SessSetup()" from Jun 16, 2014, leads to the following static checker warning:

	fs/cifs/sess.c:797 CIFS_SessSetup()
	warn: possible memory leak of 'sess_data'

fs/cifs/sess.c

   784          sess_data = kzalloc(sizeof(struct sess_data), GFP_KERNEL);
   785          if (!sess_data)
   786                  return -ENOMEM;
   787          sess_data->xid = xid;
   788          sess_data->ses = ses;
   789          sess_data->buf0_type = CIFS_NO_BUFFER;
   790          sess_data->nls_cp = (struct nls_table *) nls_cp;
   791  
   792          type = select_sectype(ses->server, ses->sectype);
   793          cifs_dbg(FYI, "sess setup type %d\n", type);
   794          if (type == Unspecified) {
   795                  cifs_dbg(VFS,
   796                          "Unable to select appropriate authentication method!");
   797                  return -EINVAL;
                        ^^^^^^^^^^^^^^
Quoted 7 lines

missing kfree().

   798          }

regards,
dan carpenter
--

Hello Dan,

This is indeed a bug. This was however fixed in a patch which came in later in the series. This patch replaces CIFS_SessSetup().
https://git.samba.org/?p=sfrench/cifs-2.6.git;a=commit;h=f877b1fa0ebe6074694721562072106d542e44e1

It looks like the patch wasn't included in Steve's test tree when you ran your tests. I believe we no longer require a fix for this particular issue in Steve's tree which now contains the entire series.

Sachin Prabhu