memcredp 764 source3/winbindd/winbindd_cred_cache.c static NTSTATUS store_memory_creds(struct WINBINDD_MEMORY_CREDS *memcredp, memcredp 774 source3/winbindd/winbindd_cred_cache.c memcredp->len = NT_HASH_LEN + LM_HASH_LEN; memcredp 776 source3/winbindd/winbindd_cred_cache.c memcredp->len += strlen(pass)+1; memcredp 784 source3/winbindd/winbindd_cred_cache.c memcredp->nt_hash = SMB_MALLOC_ARRAY(unsigned char, memcredp->len); memcredp 787 source3/winbindd/winbindd_cred_cache.c memcredp->nt_hash = SMB_MEMALIGN_ARRAY(unsigned char, memcredp 788 source3/winbindd/winbindd_cred_cache.c getpagesize(), memcredp->len); memcredp 790 source3/winbindd/winbindd_cred_cache.c if (!memcredp->nt_hash) { memcredp 793 source3/winbindd/winbindd_cred_cache.c memset(memcredp->nt_hash, 0x0, memcredp->len); memcredp 795 source3/winbindd/winbindd_cred_cache.c memcredp->lm_hash = memcredp->nt_hash + NT_HASH_LEN; memcredp 798 source3/winbindd/winbindd_cred_cache.c DEBUG(10,("mlocking memory: %p\n", memcredp->nt_hash)); memcredp 800 source3/winbindd/winbindd_cred_cache.c if ((mlock(memcredp->nt_hash, memcredp->len)) == -1) { memcredp 803 source3/winbindd/winbindd_cred_cache.c SAFE_FREE(memcredp->nt_hash); memcredp 808 source3/winbindd/winbindd_cred_cache.c DEBUG(10,("mlocked memory: %p\n", memcredp->nt_hash)); memcredp 812 source3/winbindd/winbindd_cred_cache.c E_md4hash(pass, memcredp->nt_hash); memcredp 813 source3/winbindd/winbindd_cred_cache.c E_deshash(pass, memcredp->lm_hash); memcredp 816 source3/winbindd/winbindd_cred_cache.c memcredp->pass = (char *)memcredp->lm_hash + LM_HASH_LEN; memcredp 817 source3/winbindd/winbindd_cred_cache.c memcpy(memcredp->pass, pass, memcredp 818 source3/winbindd/winbindd_cred_cache.c memcredp->len - NT_HASH_LEN - LM_HASH_LEN); memcredp 829 source3/winbindd/winbindd_cred_cache.c static NTSTATUS delete_memory_creds(struct WINBINDD_MEMORY_CREDS *memcredp) memcredp 834 source3/winbindd/winbindd_cred_cache.c if (munlock(memcredp->nt_hash, memcredp->len) == -1) { memcredp 839 source3/winbindd/winbindd_cred_cache.c memset(memcredp->nt_hash, '\0', memcredp->len); memcredp 840 source3/winbindd/winbindd_cred_cache.c SAFE_FREE(memcredp->nt_hash); memcredp 841 source3/winbindd/winbindd_cred_cache.c memcredp->nt_hash = NULL; memcredp 842 source3/winbindd/winbindd_cred_cache.c memcredp->lm_hash = NULL; memcredp 843 source3/winbindd/winbindd_cred_cache.c memcredp->pass = NULL; memcredp 844 source3/winbindd/winbindd_cred_cache.c memcredp->len = 0; memcredp 853 source3/winbindd/winbindd_cred_cache.c static NTSTATUS winbindd_replace_memory_creds_internal(struct WINBINDD_MEMORY_CREDS *memcredp, memcredp 856 source3/winbindd/winbindd_cred_cache.c NTSTATUS status = delete_memory_creds(memcredp); memcredp 860 source3/winbindd/winbindd_cred_cache.c return store_memory_creds(memcredp, pass); memcredp 876 source3/winbindd/winbindd_cred_cache.c struct WINBINDD_MEMORY_CREDS *memcredp = NULL; memcredp 878 source3/winbindd/winbindd_cred_cache.c memcredp = find_memory_creds_by_name(username); memcredp 885 source3/winbindd/winbindd_cred_cache.c if (memcredp) { memcredp 887 source3/winbindd/winbindd_cred_cache.c if (uid != memcredp->uid) { memcredp 892 source3/winbindd/winbindd_cred_cache.c (unsigned int)memcredp->uid)); memcredp 893 source3/winbindd/winbindd_cred_cache.c memcredp->uid = uid; memcredp 895 source3/winbindd/winbindd_cred_cache.c memcredp->ref_count++; memcredp 898 source3/winbindd/winbindd_cred_cache.c username, memcredp->ref_count)); memcredp 899 source3/winbindd/winbindd_cred_cache.c return winbindd_replace_memory_creds_internal(memcredp, pass); memcredp 902 source3/winbindd/winbindd_cred_cache.c memcredp = TALLOC_ZERO_P(NULL, struct WINBINDD_MEMORY_CREDS); memcredp 903 source3/winbindd/winbindd_cred_cache.c if (!memcredp) { memcredp 906 source3/winbindd/winbindd_cred_cache.c memcredp->username = talloc_strdup(memcredp, username); memcredp 907 source3/winbindd/winbindd_cred_cache.c if (!memcredp->username) { memcredp 908 source3/winbindd/winbindd_cred_cache.c talloc_destroy(memcredp); memcredp 912 source3/winbindd/winbindd_cred_cache.c status = store_memory_creds(memcredp, pass); memcredp 914 source3/winbindd/winbindd_cred_cache.c talloc_destroy(memcredp); memcredp 918 source3/winbindd/winbindd_cred_cache.c memcredp->uid = uid; memcredp 919 source3/winbindd/winbindd_cred_cache.c memcredp->ref_count = 1; memcredp 920 source3/winbindd/winbindd_cred_cache.c DLIST_ADD(memory_creds_list, memcredp); memcredp 949 source3/winbindd/winbindd_cred_cache.c struct WINBINDD_MEMORY_CREDS *memcredp = NULL; memcredp 950 source3/winbindd/winbindd_cred_cache.c memcredp = find_memory_creds_by_name(username); memcredp 951 source3/winbindd/winbindd_cred_cache.c if (memcredp) { memcredp 952 source3/winbindd/winbindd_cred_cache.c entry->cred_ptr = memcredp; memcredp 965 source3/winbindd/winbindd_cred_cache.c struct WINBINDD_MEMORY_CREDS *memcredp = NULL; memcredp 969 source3/winbindd/winbindd_cred_cache.c memcredp = find_memory_creds_by_name(username); memcredp 972 source3/winbindd/winbindd_cred_cache.c if (!memcredp) { memcredp 978 source3/winbindd/winbindd_cred_cache.c if (memcredp->ref_count <= 0) { memcredp 981 source3/winbindd/winbindd_cred_cache.c username, memcredp->ref_count)); memcredp 985 source3/winbindd/winbindd_cred_cache.c memcredp->ref_count--; memcredp 986 source3/winbindd/winbindd_cred_cache.c if (memcredp->ref_count <= 0) { memcredp 987 source3/winbindd/winbindd_cred_cache.c delete_memory_creds(memcredp); memcredp 988 source3/winbindd/winbindd_cred_cache.c DLIST_REMOVE(memory_creds_list, memcredp); memcredp 989 source3/winbindd/winbindd_cred_cache.c talloc_destroy(memcredp); memcredp 996 source3/winbindd/winbindd_cred_cache.c username, memcredp->ref_count)); memcredp 1014 source3/winbindd/winbindd_cred_cache.c struct WINBINDD_MEMORY_CREDS *memcredp = NULL; memcredp 1016 source3/winbindd/winbindd_cred_cache.c memcredp = find_memory_creds_by_name(username); memcredp 1017 source3/winbindd/winbindd_cred_cache.c if (!memcredp) { memcredp 1026 source3/winbindd/winbindd_cred_cache.c return winbindd_replace_memory_creds_internal(memcredp, pass);