diff options
author | Jeff Layton <jlayton@redhat.com> | 2010-09-29 15:27:08 -0400 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2010-10-01 17:50:08 +0000 |
commit | f569599ae70f0899035f8d5876a7939f629c5976 (patch) | |
tree | 4d7f7c32b9c89f15841bdbf372e75afe09bdef53 /fs/compat_ioctl.c | |
parent | 522440ed55d2cc8855ea5f82bc067e0483b2e1be (diff) | |
download | linux-f569599ae70f0899035f8d5876a7939f629c5976.tar.bz2 |
cifs: prevent infinite recursion in cifs_reconnect_tcon
cifs_reconnect_tcon is called from smb_init. After a successful
reconnect, cifs_reconnect_tcon will call reset_cifs_unix_caps. That
function will, in turn call CIFSSMBQFSUnixInfo and CIFSSMBSetFSUnixInfo.
Those functions also call smb_init.
It's possible for the session and tcon reconnect to succeed, and then
for another cifs_reconnect to occur before CIFSSMBQFSUnixInfo or
CIFSSMBSetFSUnixInfo to be called. That'll cause those functions to call
smb_init and cifs_reconnect_tcon again, ad infinitum...
Break the infinite recursion by having those functions use a new
smb_init variant that doesn't attempt to perform a reconnect.
Reported-and-Tested-by: Michal Suchanek <hramrach@centrum.cz>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/compat_ioctl.c')
0 files changed, 0 insertions, 0 deletions