On 2014-11-01 11:02, pschweitzer@svn.reactos.org wrote:
- OutputBuffer->FileRecordLength = FileRecord->BytesInUse;
- RtlCopyMemory(OutputBuffer->FileRecordBuffer, FileRecord, FileRecord->BytesInUse);
- OutputBuffer->FileRecordLength = DeviceExt->NtfsInfo.BytesPerFileRecord;
- RtlCopyMemory(OutputBuffer->FileRecordBuffer, FileRecord, DeviceExt->NtfsInfo.BytesPerFileRecord);
Wait, now there's no check against OutputBufferLength at all? It should at least be min(DeviceExt->NtfsInfo.BytesPerFileRecord, Stack->Parameters.FileSystemControl.OutputBufferLength) in the memcpy size. Or am I missing something?
You're missing line 611 where we check against size: Stack->Parameters.FileSystemControl.OutputBufferLength < (FIELD_OFFSET(NTFS_FILE_RECORD_OUTPUT_BUFFER, FileRecordBuffer) + DeviceExt->NtfsInfo.BytesPerFileRecord)
On 01/11/2014 11:13, Thomas Faber wrote:
On 2014-11-01 11:02, pschweitzer@svn.reactos.org wrote:
- OutputBuffer->FileRecordLength = FileRecord->BytesInUse;
- RtlCopyMemory(OutputBuffer->FileRecordBuffer, FileRecord, FileRecord->BytesInUse);
- OutputBuffer->FileRecordLength = DeviceExt->NtfsInfo.BytesPerFileRecord;
- RtlCopyMemory(OutputBuffer->FileRecordBuffer, FileRecord, DeviceExt->NtfsInfo.BytesPerFileRecord);
Wait, now there's no check against OutputBufferLength at all? It should at least be min(DeviceExt->NtfsInfo.BytesPerFileRecord, Stack->Parameters.FileSystemControl.OutputBufferLength) in the memcpy size. Or am I missing something?
Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev
Ah, indeed. Looks good, thanks.
On 2014-11-01 11:14, Pierre Schweitzer wrote:
You're missing line 611 where we check against size: Stack->Parameters.FileSystemControl.OutputBufferLength < (FIELD_OFFSET(NTFS_FILE_RECORD_OUTPUT_BUFFER, FileRecordBuffer) + DeviceExt->NtfsInfo.BytesPerFileRecord)
On 01/11/2014 11:13, Thomas Faber wrote:
On 2014-11-01 11:02, pschweitzer@svn.reactos.org wrote:
- OutputBuffer->FileRecordLength = FileRecord->BytesInUse;
- RtlCopyMemory(OutputBuffer->FileRecordBuffer, FileRecord, FileRecord->BytesInUse);
- OutputBuffer->FileRecordLength = DeviceExt->NtfsInfo.BytesPerFileRecord;
- RtlCopyMemory(OutputBuffer->FileRecordBuffer, FileRecord, DeviceExt->NtfsInfo.BytesPerFileRecord);
Wait, now there's no check against OutputBufferLength at all? It should at least be min(DeviceExt->NtfsInfo.BytesPerFileRecord, Stack->Parameters.FileSystemControl.OutputBufferLength) in the memcpy size. Or am I missing something?
On 2014-11-01 11:13, Thomas Faber wrote:
On 2014-11-01 11:02, pschweitzer@svn.reactos.org wrote:
- OutputBuffer->FileRecordLength = FileRecord->BytesInUse;
- RtlCopyMemory(OutputBuffer->FileRecordBuffer, FileRecord, FileRecord->BytesInUse);
- OutputBuffer->FileRecordLength = DeviceExt->NtfsInfo.BytesPerFileRecord;
- RtlCopyMemory(OutputBuffer->FileRecordBuffer, FileRecord, DeviceExt->NtfsInfo.BytesPerFileRecord);
Wait, now there's no check against OutputBufferLength at all? It should at least be min(DeviceExt->NtfsInfo.BytesPerFileRecord, Stack->Parameters.FileSystemControl.OutputBufferLength) in the memcpy size. Or am I missing something?
Er... Stack->Parameters.FileSystemControl.OutputBufferLength - FIELD_OFFSET(...) obviously