summaryrefslogtreecommitdiff
path: root/nsswitch/pam_winbind.c
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2011-03-04 05:49:20 +0100
committerVolker Lendecke <vl@samba.org>2011-03-05 14:29:32 +0100
commite0fae3d49483c33329628534591f966d4841e474 (patch)
tree762b46399cea554ebf9ec5857d96e156d34a5871 /nsswitch/pam_winbind.c
parent7ffa7e4bcae0c4e55c91a7a4466eae596d982770 (diff)
downloadsamba-e0fae3d49483c33329628534591f966d4841e474.tar.gz
samba-e0fae3d49483c33329628534591f966d4841e474.tar.bz2
samba-e0fae3d49483c33329628534591f966d4841e474.zip
pam_winbind: Use wbcSidToStringBuf
Diffstat (limited to 'nsswitch/pam_winbind.c')
-rw-r--r--nsswitch/pam_winbind.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/nsswitch/pam_winbind.c b/nsswitch/pam_winbind.c
index e640b711bd..7005c25fae 100644
--- a/nsswitch/pam_winbind.c
+++ b/nsswitch/pam_winbind.c
@@ -1077,12 +1077,11 @@ static bool winbind_name_to_sid_string(struct pwb_context *ctx,
char *sid_list_buffer,
int sid_list_buffer_size)
{
- const char* sid_string = NULL;
- char *sid_str = NULL;
+ char sid_string[WBC_SID_STRING_BUFLEN];
/* lookup name? */
if (IS_SID_STRING(name)) {
- sid_string = name;
+ strlcpy(sid_string, name, sizeof(sid_string));
} else {
wbcErr wbc_status;
struct wbcDomainSid sid;
@@ -1098,21 +1097,13 @@ static bool winbind_name_to_sid_string(struct pwb_context *ctx,
return false;
}
- wbc_status = wbcSidToString(&sid, &sid_str);
- if (!WBC_ERROR_IS_OK(wbc_status)) {
- return false;
- }
-
- sid_string = sid_str;
+ wbcSidToStringBuf(&sid, sid_string, sizeof(sid_string));
}
if (!safe_append_string(sid_list_buffer, sid_string,
sid_list_buffer_size)) {
- wbcFreeMemory(sid_str);
return false;
}
-
- wbcFreeMemory(sid_str);
return true;
}