diff options
| author | Thomas Voss <mail@thomasvoss.com> | 2026-02-27 11:40:53 +0100 |
|---|---|---|
| committer | Thomas Voss <mail@thomasvoss.com> | 2026-02-27 11:40:53 +0100 |
| commit | e5d3c3f3d0dfcc399ef1f7623ddeab619db4b4ea (patch) | |
| tree | c18eed140b27ce3cd61c0f5ef99e126c69031298 /oryxc/src/compiler.rs | |
| parent | df512a08f3c14f8496b53dd15f30f772df208202 (diff) | |
Bad the input buffer with nul bytes
Diffstat (limited to 'oryxc/src/compiler.rs')
| -rw-r--r-- | oryxc/src/compiler.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/oryxc/src/compiler.rs b/oryxc/src/compiler.rs index 14919ba..bdb4475 100644 --- a/oryxc/src/compiler.rs +++ b/oryxc/src/compiler.rs @@ -44,7 +44,13 @@ pub struct FileData { impl FileData { fn new(name: OsString) -> Result<Self, io::Error> { - let buffer = fs::read_to_string(&name)?; + const PAD: [u8; 64] = [0; 64]; /* 512 bits */ + + // Append extra data to the end so that we can safely read past + // instead of branching on length + let mut buffer = fs::read_to_string(&name)?; + buffer.push_str(unsafe { str::from_utf8_unchecked(&PAD) }); + return Ok(Self { name: name.into(), buffer: buffer.into(), |