From bf2973e857b3836b0c3e3c8e81f37f998dff95a5 Mon Sep 17 00:00:00 2001 From: Tom Almeida <tommoa256@gmail.com> Date: Tue, 3 Jul 2018 12:50:04 +0800 Subject: [PATCH] Ensure we correctly insert null character in gets --- src/stdio/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/stdio/src/lib.rs b/src/stdio/src/lib.rs index d0b38f94..0ce1eb1c 100644 --- a/src/stdio/src/lib.rs +++ b/src/stdio/src/lib.rs @@ -351,10 +351,10 @@ pub extern "C" fn fgets(s: *mut c_char, n: c_int, stream: &mut FILE) -> *mut c_c if let Some((rpos, rend)) = stream.read { for _ in (0..(n-1) as usize).take_while(|x| rpos + x < rend) { st[diff] = stream.buf[rpos + diff] as i8; - if st[diff] == b'\n' as i8 || st[diff] == stream.buf_char { + diff += 1; + if st[diff-1] == b'\n' as i8 || st[diff-1] == stream.buf_char { break; } - diff += 1; } stream.read = Some((rpos+diff, rend)); for i in diff..(n-1) as usize { -- GitLab