summaryrefslogtreecommitdiff
path: root/oryxc/src/compiler.rs
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2026-02-27 11:40:53 +0100
committerThomas Voss <mail@thomasvoss.com> 2026-02-27 11:40:53 +0100
commite5d3c3f3d0dfcc399ef1f7623ddeab619db4b4ea (patch)
treec18eed140b27ce3cd61c0f5ef99e126c69031298 /oryxc/src/compiler.rs
parentdf512a08f3c14f8496b53dd15f30f772df208202 (diff)
Bad the input buffer with nul bytes
Diffstat (limited to 'oryxc/src/compiler.rs')
-rw-r--r--oryxc/src/compiler.rs8
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(),