mirror of
https://github.com/samba-team/samba.git
synced 2025-11-20 08:23:50 +03:00
Tridge, if you have time, you might want to look at the segfault I was still seeing. Now I store the handle to the netlogon pipe in the global winbind state and free it on the next entry into check_machacc. The problem seems to be that talloc_free()ing a pipe struct from within a callback function on that pipe is not possible. I think I can live with that, but it has been not really obvious. To reproduce the segfault you might want to look at putting a talloc_free(state->getcreds->out.netlogon) into wbsrv_samba3_check_machacc_receive_creds. This is called from a dcerpc callback function. In particular if the check failed it would be nice if I could delete the pipe directly and not post a different event to some winbind queue. I tried to delete the pipe from a timed event triggered immediately, but this also fails because the inner loop seems to hit the same event again, calling it twice. Volker
47 lines
1.2 KiB
C
47 lines
1.2 KiB
C
/*
|
|
Unix SMB/CIFS implementation.
|
|
|
|
SMB composite request interfaces
|
|
|
|
Copyright (C) Volker Lendecke 2005
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
*/
|
|
|
|
struct wb_finddcs {
|
|
struct {
|
|
struct messaging_context *msg_ctx;
|
|
const char *domain;
|
|
} in;
|
|
|
|
struct {
|
|
int num_dcs;
|
|
struct nbt_dc_name {
|
|
const char *address;
|
|
const char *name;
|
|
} *dcs;
|
|
} out;
|
|
};
|
|
|
|
struct wb_get_schannel_creds {
|
|
struct {
|
|
struct cli_credentials *creds;
|
|
struct smbcli_tree *tree;
|
|
} in;
|
|
struct {
|
|
struct dcerpc_pipe *netlogon;
|
|
} out;
|
|
};
|