[PATCH] libwbclient clear pointer on bad read
Jeremy Allison
jra at samba.org
Thu Jan 15 13:28:20 MST 2015
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... :-( ).
More information about the samba-technical
mailing list