diff options
-rw-r--r-- | source3/include/smb.h | 4 | ||||
-rw-r--r-- | source3/nsswitch/winbind_struct_protocol.h | 6 | ||||
-rw-r--r-- | source3/winbindd/winbindd.h | 8 | ||||
-rw-r--r-- | source3/winbindd/winbindd_dual.c | 13 |
4 files changed, 16 insertions, 15 deletions
diff --git a/source3/include/smb.h b/source3/include/smb.h index f85c7344bc..1d787f52d4 100644 --- a/source3/include/smb.h +++ b/source3/include/smb.h @@ -150,10 +150,6 @@ typedef union unid_t { typedef uint16 smb_ucs2_t; -/* ucs2 string types. */ -typedef smb_ucs2_t wpstring[PSTRING_LEN]; -typedef smb_ucs2_t wfstring[FSTRING_LEN]; - #ifdef WORDS_BIGENDIAN #define UCS2_SHIFT 8 #else diff --git a/source3/nsswitch/winbind_struct_protocol.h b/source3/nsswitch/winbind_struct_protocol.h index 0e3ad8bcaf..e780cadb0c 100644 --- a/source3/nsswitch/winbind_struct_protocol.h +++ b/source3/nsswitch/winbind_struct_protocol.h @@ -243,10 +243,10 @@ struct winbindd_request { struct { /* We deliberatedly don't split into domain/user to avoid having the client know what the separator - character is. */ + character is. */ fstring user; fstring pass; - pstring require_membership_of_sid; + char require_membership_of_sid[1024]; fstring krb5_cc_type; uid_t uid; } auth; /* pam_winbind auth module */ @@ -287,7 +287,7 @@ struct winbindd_request { fstring sid; /* lookupsid, sid_to_[ug]id */ struct { fstring dom_name; /* lookupname */ - fstring name; + fstring name; } name; uint32_t num_entries; /* getpwent, getgrent */ struct { diff --git a/source3/winbindd/winbindd.h b/source3/winbindd/winbindd.h index 454a4b9698..248bcff92b 100644 --- a/source3/winbindd/winbindd.h +++ b/source3/winbindd/winbindd.h @@ -150,7 +150,7 @@ struct winbindd_child { pid_t pid; struct winbindd_domain *domain; - pstring logfilename; + char *logfilename; struct fd_event event; struct timed_event *lockout_policy_event; @@ -166,8 +166,8 @@ struct winbindd_domain { fstring alt_name; /* alt Domain name, if any (FQDN for ADS) */ fstring forest_name; /* Name of the AD forest we're in */ DOM_SID sid; /* SID for this domain */ - uint32 domain_flags; /* Domain flags from rpc_ds.h */ - uint32 domain_type; /* Domain type from rpc_ds.h */ + uint32 domain_flags; /* Domain flags from rpc_ds.h */ + uint32 domain_type; /* Domain type from rpc_ds.h */ uint32 domain_trust_attribs; /* Trust attribs from rpc_ds.h */ bool initialized; /* Did we already ask for the domain mode? */ bool native_mode; /* is this a win2k domain in native mode ? */ @@ -187,7 +187,7 @@ struct winbindd_domain { /* Private data for the backends (used for connection cache) */ - void *private_data; + void *private_data; /* A working DC */ fstring dcname; diff --git a/source3/winbindd/winbindd_dual.c b/source3/winbindd/winbindd_dual.c index c15af710f4..91e60cca36 100644 --- a/source3/winbindd/winbindd_dual.c +++ b/source3/winbindd/winbindd_dual.c @@ -471,11 +471,15 @@ void setup_domain_child(struct winbindd_domain *domain, const char *explicit_logfile) { if (explicit_logfile != NULL) { - pstr_sprintf(child->logfilename, "%s/log.winbindd-%s", - dyn_LOGFILEBASE, explicit_logfile); + if (asprintf(&child->logfilename, "%s/log.winbindd-%s", + dyn_LOGFILEBASE, explicit_logfile) < 0) { + smb_panic("Internal error: asprintf failed"); + } } else if (domain != NULL) { - pstr_sprintf(child->logfilename, "%s/log.wb-%s", - dyn_LOGFILEBASE, domain->name); + if (asprintf(&child->logfilename, "%s/log.wb-%s", + dyn_LOGFILEBASE, domain->name) < 0) { + smb_panic("Internal error: asprintf failed"); + } } else { smb_panic("Internal error: domain == NULL && " "explicit_logfile == NULL"); @@ -507,6 +511,7 @@ void winbind_child_died(pid_t pid) child->event.fd = 0; child->event.flags = 0; child->pid = 0; + SAFE_FREE(child->logfilename); schedule_async_request(child); } |