name_offset > remaining ||
name_length != 4 || /* windows enforces this */
name_offset + name_length > remaining ||
- data_offset < name_offset + name_length ||
- data_offset > remaining ||
- data_offset + (uint64_t)data_length > remaining) {
+ (data_offset && (data_offset < name_offset + name_length)) ||
+ (data_offset && (data_offset > remaining)) ||
+ (data_offset && data_length &&
+ (data_offset + (uint64_t)data_length > remaining))) {
return NT_STATUS_INVALID_PARAMETER;
}
data += next;
if (remaining < 16) {
+ DEBUG(0,("smb2_create_blob_parse: remaining1 = %d, next = %d\n",
+ (int)remaining,
+ (int)next));
return NT_STATUS_INVALID_PARAMETER;
}
}