Files
linux-legacy/fs
Jeff Layton c7d622e356 cifs: NULL out tcon, pSesInfo, and srvTcp pointers when chasing DFS referrals
commit a2934c7b363ddcc001964f2444649f909e583bef upstream.

The scenario is this:

The kernel gets EREMOTE and starts chasing a DFS referral at mount time.
The tcon reference is put, which puts the session reference too, but
neither pointer is zeroed out.

The mount gets retried (goto try_mount_again) with new mount info.
Session setup fails fails and rc ends up being non-zero. The code then
falls through to the end and tries to put the previously freed tcon
pointer again.  Oops at: cifs_put_smb_ses+0x14/0xd0

Fix this by moving the initialization of the rc variable and the tcon,
pSesInfo and srvTcp pointers below the try_mount_again label. Also, add
a FreeXid() before the goto to prevent xid "leaks".

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Reported-by: Gustavo Carvalho Homem <gustavo@angulosolido.pt>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-01-06 14:26:20 -08:00
..
2009-07-12 12:22:34 -07:00
2009-06-11 21:36:14 -04:00
2009-06-11 21:36:01 -04:00
2009-07-12 12:22:34 -07:00
2009-08-21 10:09:44 +02:00
2009-07-14 12:28:43 -05:00
2009-06-17 00:36:36 -04:00
2009-07-12 12:22:34 -07:00
2009-09-05 13:41:08 -07:00
2009-07-12 12:22:34 -07:00
2009-07-12 12:22:34 -07:00
2009-12-18 13:43:22 -08:00
2009-07-12 12:22:34 -07:00
2009-07-10 19:18:59 -07:00
2009-07-12 12:22:34 -07:00
2009-06-15 21:44:43 -07:00
2009-06-15 21:44:43 -07:00
2009-06-11 21:36:13 -04:00
2009-06-11 21:36:12 -04:00
2009-07-30 17:31:23 +02:00
2009-07-12 12:22:34 -07:00
2009-06-11 21:36:07 -04:00
2009-07-12 12:22:34 -07:00
2009-06-17 00:36:37 -04:00
2009-07-12 12:22:34 -07:00
2009-06-18 13:03:46 -07:00
2009-06-30 18:55:58 -07:00
2009-07-12 12:22:34 -07:00
2009-06-11 21:36:06 -04:00
2009-06-18 13:03:41 -07:00
2009-07-12 12:22:34 -07:00
2009-06-11 21:36:07 -04:00
2009-07-14 12:34:17 +09:00
2009-04-07 08:31:16 -07:00
2009-10-12 12:40:22 -07:00
2009-11-09 16:21:45 -08:00
2009-04-20 23:02:52 -04:00
2009-06-11 21:36:02 -04:00