Changeset 136 for trunk/samba/source/passdb/lookup_sid.c
- Timestamp:
- May 29, 2008, 12:22:03 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/samba/source/passdb/lookup_sid.c
r133 r136 1013 1013 } 1014 1014 1015 SMB_ASSERT(cache_value.length == sizeof(*psid)); 1016 memcpy(psid, cache_value.data, sizeof(*psid)); 1015 memcpy(psid, cache_value.data, MIN(sizeof(*psid), cache_value.length)); 1016 SMB_ASSERT(cache_value.length >= offsetof(struct dom_sid, id_auth)); 1017 SMB_ASSERT(cache_value.length == ndr_size_dom_sid(psid, 0)); 1017 1018 1018 1019 return true; … … 1028 1029 1029 1030 if (!memcache_lookup(NULL, SID_UID_CACHE, 1030 data_blob_const(psid, sizeof(*psid)),1031 data_blob_const(psid, ndr_size_dom_sid(psid, 0)), 1031 1032 &cache_value)) { 1032 1033 return false; … … 1046 1047 { 1047 1048 memcache_add(NULL, SID_UID_CACHE, 1048 data_blob_const(psid, sizeof(*psid)),1049 data_blob_const(psid, ndr_size_dom_sid(psid, 0)), 1049 1050 data_blob_const(&uid, sizeof(uid))); 1050 1051 memcache_add(NULL, UID_SID_CACHE, 1051 1052 data_blob_const(&uid, sizeof(uid)), 1052 data_blob_const(psid, sizeof(*psid)));1053 data_blob_const(psid, ndr_size_dom_sid(psid, 0))); 1053 1054 } 1054 1055 … … 1067 1068 } 1068 1069 1069 SMB_ASSERT(cache_value.length == sizeof(*psid)); 1070 memcpy(psid, cache_value.data, sizeof(*psid)); 1070 memcpy(psid, cache_value.data, MIN(sizeof(*psid), cache_value.length)); 1071 SMB_ASSERT(cache_value.length >= offsetof(struct dom_sid, id_auth)); 1072 SMB_ASSERT(cache_value.length == ndr_size_dom_sid(psid, 0)); 1071 1073 1072 1074 return true; … … 1082 1084 1083 1085 if (!memcache_lookup(NULL, SID_UID_CACHE, 1084 data_blob_const(psid, sizeof(*psid)),1086 data_blob_const(psid, ndr_size_dom_sid(psid, 0)), 1085 1087 &cache_value)) { 1086 1088 return false; … … 1100 1102 { 1101 1103 memcache_add(NULL, SID_GID_CACHE, 1102 data_blob_const(psid, sizeof(*psid)),1104 data_blob_const(psid, ndr_size_dom_sid(psid, 0)), 1103 1105 data_blob_const(&gid, sizeof(gid))); 1104 1106 memcache_add(NULL, GID_SID_CACHE, 1105 1107 data_blob_const(&gid, sizeof(gid)), 1106 data_blob_const(psid, sizeof(*psid)));1108 data_blob_const(psid, ndr_size_dom_sid(psid, 0))); 1107 1109 } 1108 1110
Note:
See TracChangeset
for help on using the changeset viewer.