[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