result = wbcLookupName(dom_name, name, &dom_sid, &type);
if (result != WBC_ERR_SUCCESS)
- return False;
+ return false;
memcpy(sid, &dom_sid, sizeof(DOM_SID));
*name_type = (enum lsa_SidType)type;
- return True;
+ return true;
}
/* Call winbindd to convert sid to name */
result = wbcLookupSid(&dom_sid, &domain_name, &account_name, &type);
if (result != WBC_ERR_SUCCESS)
- return False;
+ return false;
/* Copy out result */
DEBUG(10, ("winbind_lookup_sid: SUCCESS: SID %s -> %s %s\n",
sid_string_dbg(sid), domain_name, account_name));
- SAFE_FREE(domain_name);
- SAFE_FREE(account_name);
+ wbcFreeMemory(domain_name);
+ wbcFreeMemory(account_name);
if ((domain && !*domain) || (name && !*name)) {
DEBUG(0,("winbind_lookup_sid: talloc() failed!\n"));
- return False;
+ return false;
}
- return True;
+ return true;
}
/* Ping winbindd to see it is alive */
ret = wbcLookupRids(&dom_sid, num_rids, rids,
&dom_name, &namelist, &name_types);
- if (ret != WBC_ERR_SUCCESS)
- return False;
+ if (ret != WBC_ERR_SUCCESS) {
+ return false;
+ }
*domain_name = talloc_strdup(mem_ctx, dom_name);
*names = TALLOC_ARRAY(mem_ctx, const char*, num_rids);
for(i=0; i<num_rids; i++) {
(*names)[i] = talloc_strdup(names, namelist[i]);
(*types)[i] = (enum lsa_SidType)name_types[i];
-
- free(CONST_DISCARD(char*, namelist[i]));
}
- free(namelist);
- free(name_types);
+
+ wbcFreeMemory(CONST_DISCARD(char*, dom_name));
+ wbcFreeMemory(namelist);
+ wbcFreeMemory(name_types);
- return True;
+ return true;
}
/* Ask Winbind to allocate a new uid for us */
bool winbind_lookup_name(const char *dom_name, const char *name, DOM_SID *sid,
enum lsa_SidType *name_type)
{
- return False;
+ return false;
}
/* Call winbindd to convert sid to name */
const char **domain, const char **name,
enum lsa_SidType *name_type)
{
- return False;
+ return false;
}
/* Ping winbindd to see it is alive */
bool winbind_ping(void)
{
- return False;
+ return false;
}
/* Call winbindd to convert SID to uid */
bool winbind_sid_to_uid(uid_t *puid, const DOM_SID *sid)
{
- return False;
+ return false;
}
/* Call winbindd to convert uid to sid */
bool winbind_uid_to_sid(DOM_SID *sid, uid_t uid)
{
- return False;
+ return false;
}
/* Call winbindd to convert SID to gid */
bool winbind_sid_to_gid(gid_t *pgid, const DOM_SID *sid)
{
- return False;
+ return false;
}
/* Call winbindd to convert gid to sid */
bool winbind_gid_to_sid(DOM_SID *sid, gid_t gid)
{
- return False;
+ return false;
}
/* Check for a trusted domain */
const char **domain_name,
const char ***names, enum lsa_SidType **types)
{
- return False;
+ return false;
}
/* Ask Winbind to allocate a new uid for us */
bool winbind_allocate_uid(uid_t *uid)
{
- return False;
+ return false;
}
/* Ask Winbind to allocate a new gid for us */
bool winbind_allocate_gid(gid_t *gid)
{
- return False;
+ return false;
}
#endif /* WITH_WINBIND */
/* Copy out result */
if (domain != NULL) {
- *domain = strdup(response.data.name.dom_name);
+ *domain = talloc_strdup(NULL, response.data.name.dom_name);
BAIL_ON_PTR_ERROR((*domain), wbc_status);
}
if (name != NULL) {
- *name = strdup(response.data.name.name);
+ *name = talloc_strdup(NULL, response.data.name.name);
BAIL_ON_PTR_ERROR((*name), wbc_status);
}
done:
if (!WBC_ERROR_IS_OK(wbc_status)) {
if (*domain)
- free(*domain);
+ talloc_free(*domain);
if (*name)
- free(*name);
+ talloc_free(*name);
}
return wbc_status;
ridbuf_size = (sizeof(char)*11) * num_rids + 1;
- ridlist = malloc(ridbuf_size);
+ ridlist = talloc_zero_array(NULL, char, ridbuf_size);
BAIL_ON_PTR_ERROR(ridlist, wbc_status);
- memset(ridlist, 0x0, ridbuf_size);
-
len = 0;
for (i=0; i<num_rids && (len-1)>0; i++) {
char ridstr[12];
wbc_status = wbcRequestResponse(WINBINDD_LOOKUPRIDS,
&request,
&response);
- free(ridlist);
+ talloc_free(ridlist);
- domain_name = strdup(response.data.domain_name);
+ domain_name = talloc_strdup(NULL, response.data.domain_name);
BAIL_ON_PTR_ERROR(domain_name, wbc_status);
- *names = (const char**)malloc(sizeof(char*) * num_rids);
+ *names = talloc_array(NULL, const char*, num_rids);
BAIL_ON_PTR_ERROR((*names), wbc_status);
- *types = (enum wbcSidType*)malloc(sizeof(enum wbcSidType) * num_rids);
+ *types = talloc_array(NULL, enum wbcSidType, num_rids);
BAIL_ON_PTR_ERROR((*types), wbc_status);
p = (char *)response.extra_data.data;
*q = '\0';
- (*names)[i] = strdup(p);
+ (*names)[i] = talloc_strdup((*names), p);
+ BAIL_ON_PTR_ERROR(((*names)[i]), wbc_status);
p = q+1;
}
BAIL_ON_WBC_ERROR(wbc_status);
}
- free(response.extra_data.data);
-
wbc_status = WBC_ERR_SUCCESS;
done:
+ if (response.extra_data.data) {
+ free(response.extra_data.data);
+ }
+
if (!WBC_ERROR_IS_OK(wbc_status)) {
if (domain_name)
- free(domain_name);
+ talloc_free(domain_name);
if (*names)
- free(*names);
+ talloc_free(*names);
if (*types)
- free(*types);
+ talloc_free(*types);
} else {
*pp_domain_name = domain_name;
}
return wbc_status;
-}
+}