On Tue, 14 Sep 2010 22:38:14 -0500
Shirish Pargaonkar <shirishpargaon...@gmail.com> wrote:

> >> +             if (ses->tilen > 0) {
> >> +                     memcpy(bcc_ptr, ses->tiblob,
> >> +                             ses->tilen);
> >> +                     bcc_ptr += ses->tilen;
> >> +                     kfree(ses->tiblob);
> >> +                     ses->tilen = 0;
> >> +             }
> >>               if (ses->capabilities & CAP_UNICODE) {
> >>                       if (iov[0].iov_len % 2) {
> >>                               *bcc_ptr = 0;
> >> @@ -815,12 +862,33 @@ ssetup_ntlmssp_authenticate:
> >>                       if (phase == NtLmNegotiate) {
> >>                               setup_ntlmssp_neg_req(pSMB, ses);
> >>                               iov[1].iov_len = sizeof(NEGOTIATE_MESSAGE);
> >> +                             iov[1].iov_base = &pSMB->req.SecurityBlob[0];
> >>                       } else if (phase == NtLmAuthenticate) {
> >>                               int blob_len;
> >> -                             blob_len = setup_ntlmssp_auth_req(pSMB, ses,
> >> +                             char *ntlmsspblob;
> >> +
> >> +                             /* 5 is an empirical value, large enought to
> >> +                              * hold authenticate message, max 10 of
> >> +                              * av paris, doamin,user,workstation mames,
> >> +                              * flags etc..
> >> +                              */
> >> +                             ntlmsspblob = kmalloc(5 *
> >> +                                     sizeof(struct _AUTHENTICATE_MESSAGE),
> >> +                                     GFP_KERNEL);
> >
> >                                ^^^^ when does this get freed?
> 
> Sorry, gave a wrong answer.
> 
> iov[1].iov_base = ntlmsspblob;  So it gets freed after SendReceive2() call 
> after
> that assignment.

That doesn't get automatically freed. That does mean however that you
can't kfree it at the end of that block. One way to fix it would be to
move the ntlmsspblob declaration to the top of the function and kfree
it at function exit.

-- 
Jeff Layton <jlay...@redhat.com>
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to