From 129a58a2e54a9cb2a4395c76e97c42ee68922bea Mon Sep 17 00:00:00 2001 From: AnotherTest Date: Sat, 28 Nov 2020 18:10:03 +0330 Subject: [PATCH] LibCore: Do not try to null-terminate a ByteBuffer in read_line() That's just silly :) Also fix that one use of read_line() which assumes it will null-terminated in mount.cpp (this would've blown up if the IODevice was at EOF and had a line with the same size as max_size). --- Libraries/LibCore/IODevice.cpp | 3 +-- Userland/mount.cpp | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Libraries/LibCore/IODevice.cpp b/Libraries/LibCore/IODevice.cpp index 63079c5721..81d759afd0 100644 --- a/Libraries/LibCore/IODevice.cpp +++ b/Libraries/LibCore/IODevice.cpp @@ -200,8 +200,7 @@ ByteBuffer IODevice::read_line(size_t max_size) Vector new_buffered_data; new_buffered_data.append(m_buffered_data.data() + line_index, m_buffered_data.size() - line_index); m_buffered_data = move(new_buffered_data); - line[line_index] = '\0'; - line.trim(line_index + 1); + line.trim(line_index); return line; } } diff --git a/Userland/mount.cpp b/Userland/mount.cpp index c01ccc0ec6..6a077c5d43 100644 --- a/Userland/mount.cpp +++ b/Userland/mount.cpp @@ -96,7 +96,7 @@ static bool mount_all() bool all_ok = true; while (fstab->can_read_line()) { ByteBuffer buffer = fstab->read_line(1024); - StringView line_view = (const char*)buffer.data(); + StringView line_view { buffer.data(), buffer.size() }; // Trim the trailing newline, if any. if (line_view.length() > 0 && line_view[line_view.length() - 1] == '\n')