diff options
| author | Dylan DPC <99973273+Dylan-DPC@users.noreply.github.com> | 2023-02-11 11:15:58 +0530 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-11 11:15:58 +0530 |
| commit | a50c379fcd8d0a4a9bc5ee1a837c299d3e5206f8 (patch) | |
| tree | cf57321b09a0f555d2f3beb9aa0fbf62e5138951 /library/std/src/sys | |
| parent | 745361d17d348013a554c5019b4d0c5cf17aa1de (diff) | |
| parent | 59b11e8fa39090f555b8d91eb0c359ad0adaabc4 (diff) | |
| download | rust-a50c379fcd8d0a4a9bc5ee1a837c299d3e5206f8.tar.gz rust-a50c379fcd8d0a4a9bc5ee1a837c299d3e5206f8.zip | |
Rollup merge of #107900 - ChrisDenton:zero-header, r=thomcc
Zero the `REPARSE_MOUNTPOINT_DATA_BUFFER` header Makes sure the full header is correctly initialized. Fixes #107884
Diffstat (limited to 'library/std/src/sys')
| -rw-r--r-- | library/std/src/sys/windows/fs.rs | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/library/std/src/sys/windows/fs.rs b/library/std/src/sys/windows/fs.rs index 37809803828..f1a784b5fd2 100644 --- a/library/std/src/sys/windows/fs.rs +++ b/library/std/src/sys/windows/fs.rs @@ -1393,6 +1393,8 @@ fn symlink_junction_inner(original: &Path, junction: &Path) -> io::Result<()> { let mut data = Align8([MaybeUninit::<u8>::uninit(); c::MAXIMUM_REPARSE_DATA_BUFFER_SIZE]); let data_ptr = data.0.as_mut_ptr(); let db = data_ptr.cast::<c::REPARSE_MOUNTPOINT_DATA_BUFFER>(); + // Zero the header to ensure it's fully initialized, including reserved parameters. + *db = mem::zeroed(); let buf = ptr::addr_of_mut!((*db).ReparseTarget).cast::<c::WCHAR>(); let mut i = 0; // FIXME: this conversion is very hacky |
