pam_winbind: Use wbcSidToStringBuf
authorVolker Lendecke <vl@samba.org>
Fri, 4 Mar 2011 04:49:20 +0000 (05:49 +0100)
committerVolker Lendecke <vl@samba.org>
Sat, 5 Mar 2011 13:29:32 +0000 (14:29 +0100)
nsswitch/pam_winbind.c

index e640b711bd098e643cbcb4254e071a7319f0a32d..7005c25fae4d669dbed90b8d17f2ec54ddee1271 100644 (file)
@@ -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;
 }