Message ID | 49D1D434.7060401@cn.fujitsu.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
2009/3/31 Wei Yongjun <yjwei@cn.fujitsu.com>: > Remove some pointless conditionals before kfree(). Merged. Most of this is in the old SessionSetup code (unused by default, but can be turned on if bugs found in the new implementation) slated for eventual removal. > Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com> > --- >  fs/cifs/connect.c |  36 ++++++++++++------------------------ >  1 files changed, 12 insertions(+), 24 deletions(-) > > diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c > index 0de3b56..b173b01 100644 > --- a/fs/cifs/connect.c > +++ b/fs/cifs/connect.c > @@ -2673,8 +2673,7 @@ CIFSSessSetup(unsigned int xid, struct cifsSesInfo *ses, >  /* We look for obvious messed up bcc or strings in response so we do not go off >   the end since (at least) WIN2K and Windows XP have a major bug in not null >   terminating last Unicode string in response  */ > -                if (ses->serverOS) > -                    kfree(ses->serverOS); > +                kfree(ses->serverOS); >                 ses->serverOS = kzalloc(2 * (len + 1), >                             GFP_KERNEL); >                 if (ses->serverOS == NULL) > @@ -2710,8 +2709,7 @@ CIFSSessSetup(unsigned int xid, struct cifsSesInfo *ses, >                         len = UniStrnlen((wchar_t *) bcc_ptr, remaining_words); >                 /* last string is not always null terminated >                  (for e.g. for Windows XP & 2000) */ > -                        if (ses->serverDomain) > -                            kfree(ses->serverDomain); > +                        kfree(ses->serverDomain); >                         ses->serverDomain = >                           kzalloc(2*(len+1), >                               GFP_KERNEL); > @@ -2725,8 +2723,7 @@ CIFSSessSetup(unsigned int xid, struct cifsSesInfo *ses, >                         ses->serverDomain[1+(2*len)] = 0; >                     } else { /* else no more room so create >                          dummy domain string */ > -                        if (ses->serverDomain) > -                            kfree(ses->serverDomain); > +                        kfree(ses->serverDomain); >                         ses->serverDomain = >                             kzalloc(2, GFP_KERNEL); >                     } > @@ -2772,8 +2769,7 @@ CIFSSessSetup(unsigned int xid, struct cifsSesInfo *ses, >                     bcc_ptr++; > >                     len = strnlen(bcc_ptr, 1024); > -                    if (ses->serverDomain) > -                        kfree(ses->serverDomain); > +                    kfree(ses->serverDomain); >                     ses->serverDomain = kzalloc(len + 1, >                                   GFP_KERNEL); >                     if (ses->serverDomain == NULL) > @@ -3013,8 +3009,7 @@ CIFSNTLMSSPNegotiateSessSetup(unsigned int xid, >  /* We look for obvious messed up bcc or strings in response so we do not go off >   the end since (at least) WIN2K and Windows XP have a major bug in not null >   terminating last Unicode string in response  */ > -                    if (ses->serverOS) > -                        kfree(ses->serverOS); > +                    kfree(ses->serverOS); >                     ses->serverOS = >                       kzalloc(2 * (len + 1), GFP_KERNEL); >                     cifs_strfromUCS_le(ses->serverOS, > @@ -3086,8 +3081,7 @@ CIFSNTLMSSPNegotiateSessSetup(unsigned int xid, >                     if (((long) bcc_ptr + len) - (long) >                       pByteArea(smb_buffer_response) >                       <= BCC(smb_buffer_response)) { > -                        if (ses->serverOS) > -                            kfree(ses->serverOS); > +                        kfree(ses->serverOS); >                         ses->serverOS = >                           kzalloc(len + 1, >                               GFP_KERNEL); > @@ -3414,8 +3408,7 @@ CIFSNTLMSSPAuthSessSetup(unsigned int xid, struct cifsSesInfo *ses, >  /* We look for obvious messed up bcc or strings in response so we do not go off >  the end since (at least) WIN2K and Windows XP have a major bug in not null >  terminating last Unicode string in response  */ > -                    if (ses->serverOS) > -                        kfree(ses->serverOS); > +                    kfree(ses->serverOS); >                     ses->serverOS = >                       kzalloc(2 * (len + 1), GFP_KERNEL); >                     cifs_strfromUCS_le(ses->serverOS, > @@ -3448,8 +3441,7 @@ CIFSNTLMSSPAuthSessSetup(unsigned int xid, struct cifsSesInfo *ses, >                         if (remaining_words > 0) { >                             len = UniStrnlen((wchar_t *) bcc_ptr, remaining_words); >    /* last string not always null terminated (e.g. for Windows XP & 2000) */ > -                            if (ses->serverDomain) > -                                kfree(ses->serverDomain); > +                            kfree(ses->serverDomain); >                             ses->serverDomain = >                               kzalloc(2 * >                                   (len + > @@ -3476,13 +3468,11 @@ CIFSNTLMSSPAuthSessSetup(unsigned int xid, struct cifsSesInfo *ses, >                               = 0; >                         } /* else no more room so create dummy domain string */ >                         else { > -                            if (ses->serverDomain) > -                                kfree(ses->serverDomain); > +                            kfree(ses->serverDomain); >                             ses->serverDomain = kzalloc(2,GFP_KERNEL); >                         } >                     } else {  /* no room so create dummy domain and NOS string */ > -                        if (ses->serverDomain) > -                            kfree(ses->serverDomain); > +                        kfree(ses->serverDomain); >                         ses->serverDomain = kzalloc(2, GFP_KERNEL); >                         kfree(ses->serverNOS); >                         ses->serverNOS = kzalloc(2, GFP_KERNEL); > @@ -3492,8 +3482,7 @@ CIFSNTLMSSPAuthSessSetup(unsigned int xid, struct cifsSesInfo *ses, >                     if (((long) bcc_ptr + len) - >                      (long) pByteArea(smb_buffer_response) >                         <= BCC(smb_buffer_response)) { > -                        if (ses->serverOS) > -                            kfree(ses->serverOS); > +                        kfree(ses->serverOS); >                         ses->serverOS = kzalloc(len + 1, GFP_KERNEL); >                         strncpy(ses->serverOS,bcc_ptr, len); > > @@ -3512,8 +3501,7 @@ CIFSNTLMSSPAuthSessSetup(unsigned int xid, struct cifsSesInfo *ses, >                         bcc_ptr++; > >                         len = strnlen(bcc_ptr, 1024); > -                        if (ses->serverDomain) > -                            kfree(ses->serverDomain); > +                        kfree(ses->serverDomain); >                         ses->serverDomain = >                                 kzalloc(len+1, >                                   GFP_KERNEL); > -- > 1.5.3.8 > > > > >
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 0de3b56..b173b01 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c @@ -2673,8 +2673,7 @@ CIFSSessSetup(unsigned int xid, struct cifsSesInfo *ses, /* We look for obvious messed up bcc or strings in response so we do not go off the end since (at least) WIN2K and Windows XP have a major bug in not null terminating last Unicode string in response */ - if (ses->serverOS) - kfree(ses->serverOS); + kfree(ses->serverOS); ses->serverOS = kzalloc(2 * (len + 1), GFP_KERNEL); if (ses->serverOS == NULL) @@ -2710,8 +2709,7 @@ CIFSSessSetup(unsigned int xid, struct cifsSesInfo *ses, len = UniStrnlen((wchar_t *) bcc_ptr, remaining_words); /* last string is not always null terminated (for e.g. for Windows XP & 2000) */ - if (ses->serverDomain) - kfree(ses->serverDomain); + kfree(ses->serverDomain); ses->serverDomain = kzalloc(2*(len+1), GFP_KERNEL); @@ -2725,8 +2723,7 @@ CIFSSessSetup(unsigned int xid, struct cifsSesInfo *ses, ses->serverDomain[1+(2*len)] = 0; } else { /* else no more room so create dummy domain string */ - if (ses->serverDomain) - kfree(ses->serverDomain); + kfree(ses->serverDomain); ses->serverDomain = kzalloc(2, GFP_KERNEL); } @@ -2772,8 +2769,7 @@ CIFSSessSetup(unsigned int xid, struct cifsSesInfo *ses, bcc_ptr++; len = strnlen(bcc_ptr, 1024); - if (ses->serverDomain) - kfree(ses->serverDomain); + kfree(ses->serverDomain); ses->serverDomain = kzalloc(len + 1, GFP_KERNEL); if (ses->serverDomain == NULL) @@ -3013,8 +3009,7 @@ CIFSNTLMSSPNegotiateSessSetup(unsigned int xid, /* We look for obvious messed up bcc or strings in response so we do not go off the end since (at least) WIN2K and Windows XP have a major bug in not null terminating last Unicode string in response */ - if (ses->serverOS) - kfree(ses->serverOS); + kfree(ses->serverOS); ses->serverOS = kzalloc(2 * (len + 1), GFP_KERNEL); cifs_strfromUCS_le(ses->serverOS, @@ -3086,8 +3081,7 @@ CIFSNTLMSSPNegotiateSessSetup(unsigned int xid, if (((long) bcc_ptr + len) - (long) pByteArea(smb_buffer_response) <= BCC(smb_buffer_response)) { - if (ses->serverOS) - kfree(ses->serverOS); + kfree(ses->serverOS); ses->serverOS = kzalloc(len + 1, GFP_KERNEL); @@ -3414,8 +3408,7 @@ CIFSNTLMSSPAuthSessSetup(unsigned int xid, struct cifsSesInfo *ses, /* We look for obvious messed up bcc or strings in response so we do not go off the end since (at least) WIN2K and Windows XP have a major bug in not null terminating last Unicode string in response */ - if (ses->serverOS) - kfree(ses->serverOS); + kfree(ses->serverOS); ses->serverOS = kzalloc(2 * (len + 1), GFP_KERNEL); cifs_strfromUCS_le(ses->serverOS, @@ -3448,8 +3441,7 @@ CIFSNTLMSSPAuthSessSetup(unsigned int xid, struct cifsSesInfo *ses, if (remaining_words > 0) { len = UniStrnlen((wchar_t *) bcc_ptr, remaining_words); /* last string not always null terminated (e.g. for Windows XP & 2000) */ - if (ses->serverDomain) - kfree(ses->serverDomain); + kfree(ses->serverDomain); ses->serverDomain = kzalloc(2 * (len + @@ -3476,13 +3468,11 @@ CIFSNTLMSSPAuthSessSetup(unsigned int xid, struct cifsSesInfo *ses, = 0; } /* else no more room so create dummy domain string */ else { - if (ses->serverDomain) - kfree(ses->serverDomain); + kfree(ses->serverDomain); ses->serverDomain = kzalloc(2,GFP_KERNEL); } } else { /* no room so create dummy domain and NOS string */ - if (ses->serverDomain) - kfree(ses->serverDomain); + kfree(ses->serverDomain); ses->serverDomain = kzalloc(2, GFP_KERNEL); kfree(ses->serverNOS); ses->serverNOS = kzalloc(2, GFP_KERNEL); @@ -3492,8 +3482,7 @@ CIFSNTLMSSPAuthSessSetup(unsigned int xid, struct cifsSesInfo *ses, if (((long) bcc_ptr + len) - (long) pByteArea(smb_buffer_response) <= BCC(smb_buffer_response)) { - if (ses->serverOS) - kfree(ses->serverOS); + kfree(ses->serverOS); ses->serverOS = kzalloc(len + 1, GFP_KERNEL); strncpy(ses->serverOS,bcc_ptr, len); @@ -3512,8 +3501,7 @@ CIFSNTLMSSPAuthSessSetup(unsigned int xid, struct cifsSesInfo *ses, bcc_ptr++; len = strnlen(bcc_ptr, 1024); - if (ses->serverDomain) - kfree(ses->serverDomain); + kfree(ses->serverDomain); ses->serverDomain = kzalloc(len+1, GFP_KERNEL);
Remove some pointless conditionals before kfree(). Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com> --- fs/cifs/connect.c | 36 ++++++++++++------------------------ 1 files changed, 12 insertions(+), 24 deletions(-)