[PATCH] libwbclient clear pointer on bad read
Jeremy Allison
jra at samba.org
Thu Jan 15 13:30:24 MST 2015
On Thu, Jan 15, 2015 at 12:28:20PM -0800, Jeremy Allison wrote:
> On Thu, Jan 15, 2015 at 09:03:48PM +0100, Volker Lendecke wrote:
> > On Thu, Jan 15, 2015 at 05:42:15PM +0000, Matthew Newton wrote:
> > > Separating the two layers looks like a good idea, but I can't
> > > really commit to looking at that for now.
> >
> > Understood. That's a bigger task.
> >
> > > > This would be my preferred approach, but if you need
> > > > something quicker, probably the pthread_setspecific approach
> > > > might be okay.
> > >
> > > I've had success with using pthread_setspecific and friends. Have
> > > only updated wb_common.c for now (which is where I needed the code
> > > to work) - attached. If this code is acceptable then I can try and
> > > have a look at updating the other global variables in other parts
> > > of the library.
> > >
> > > With this patch and FreeRADIUS linked to libwbclient for NTLM
> > > authentications from multiple threads, it's looking perfect with
> > > no errors any more, which is good.
> >
> > This is really great. The patch looks very simple!
> >
> > Stylistically I'd do it a bit differently though: I'd not at all use
> > macros.
> >
> > I'd make it two patches: First convert all access to the global variables
> > to a two-step process: First call a function like winbindd_fd_ptr()
> > returning an int* and then after that access the fd via that pointer. That
> > would be the first patch. Second patch would be to introduce the
> > thread-specific piece, just adding a #ifdef HAVE_PTHREAD version of it
> > not returning &winbindd_fd but the thread specific space.
> >
> > Sounds reasonable?
>
> FYI, If we're gonne just go pthreads directly, which
> is looks like we already have - then we should remove
> all the work I did inside:
>
> source3/libsmb/libsmb_thread_impl.c
> source3/libsmb/libsmb_thread_posix.c
> lib/util/smb_threads.c
> lib/util/smb_threads.h
>
> to wrap this stuff based off the ideas in openssl.
>
> Volker, if you want to propose a patch deleting it
> all I'll push :-).
>
> (Sad panda. I liked my abstraction layer but it
> never got used... :-( ).
Oh - not quite true - it gets initialized
inside talloc_stackframe_create(), but never
used after that.
More information about the samba-technical
mailing list