return -1;
}
- memcpy(&lease->lease_key, buf, 16);
+ lease->lease_key.data[0] = PULL_LE_U64(buf, 0);
+ lease->lease_key.data[1] = PULL_LE_U64(buf, 8);
lease->lease_state = PULL_LE_U32(buf, 16);
lease->lease_version = version;
lease->lease_duration = PULL_LE_U64(buf, 24);
lease->lease_flags &= SMB2_LEASE_FLAG_PARENT_LEASE_KEY_SET;
if (lease->lease_flags & SMB2_LEASE_FLAG_PARENT_LEASE_KEY_SET) {
- memcpy(&lease->parent_lease_key, buf+32, 16);
+ lease->parent_lease_key.data[0] = PULL_LE_U64(buf, 32);
+ lease->parent_lease_key.data[1] = PULL_LE_U64(buf, 40);
}
lease->lease_epoch = PULL_LE_U16(buf, 48);
break;
return false;
}
- memcpy(&buf[0], &lease->lease_key, 16);
+ PUSH_LE_U64(buf, 0, lease->lease_key.data[0]);
+ PUSH_LE_U64(buf, 8, lease->lease_key.data[1]);
PUSH_LE_U32(buf, 16, lease->lease_state);
PUSH_LE_U32(buf, 20, lease->lease_flags);
PUSH_LE_U64(buf, 24, lease->lease_duration);
if (version == 2) {
- memcpy(&buf[32], &lease->parent_lease_key, 16);
+ PUSH_LE_U64(buf, 32, lease->parent_lease_key.data[0]);
+ PUSH_LE_U64(buf, 40, lease->parent_lease_key.data[1]);
PUSH_LE_U16(buf, 48, lease->lease_epoch);
PUSH_LE_U16(buf, 50, 0); /* reserved */
}