Require UTF-8 for context name

This commit is contained in:
Jeremy Soller
2021-02-13 12:16:47 -07:00
parent b26c3e0ae9
commit a9bee0bbdc
12 changed files with 62 additions and 51 deletions
+1 -2
View File
@@ -1,7 +1,6 @@
use alloc::string::String;
use alloc::vec::Vec;
use core::fmt::Write;
use core::str;
use crate::context;
use crate::syscall::error::Result;
@@ -21,7 +20,7 @@ pub fn resource() -> Result<Vec<u8>> {
for row in rows.iter() {
let id: usize = row.0.into();
let name = str::from_utf8(&row.1).unwrap_or(".");
let name = &row.1;
let _ = writeln!(string, "{}: {}", id, name);
+1 -5
View File
@@ -1,6 +1,5 @@
use alloc::string::String;
use alloc::vec::Vec;
use core::str;
use crate::context;
use crate::syscall::error::Result;
@@ -107,9 +106,6 @@ pub fn resource() -> Result<Vec<u8>> {
format!("{} B", memory)
};
let name_bytes = context.name.read();
let name = str::from_utf8(&name_bytes).unwrap_or("");
string.push_str(&format!("{:<6}{:<6}{:<6}{:<6}{:<6}{:<6}{:<6}{:<6}{:<6}{:<6}{:<6}{:<8}{:<8}{}\n",
context.id.into(),
context.pgid.into(),
@@ -124,7 +120,7 @@ pub fn resource() -> Result<Vec<u8>> {
cpu_string,
ticks_string,
memory_string,
name));
*context.name.read()));
}
}
+6 -2
View File
@@ -1,4 +1,7 @@
use alloc::vec::Vec;
use alloc::{
boxed::Box,
vec::Vec,
};
use crate::context;
use crate::syscall::error::{Error, ESRCH, Result};
@@ -9,7 +12,8 @@ pub fn resource() -> Result<Vec<u8>> {
let context_lock = contexts.current().ok_or(Error::new(ESRCH))?;
let context = context_lock.read();
let name = context.name.read();
name.clone().into_vec()
let name_bytes: Box<[u8]> = name.clone().into();
name_bytes.into_vec()
};
Ok(name)
}
+1 -1
View File
@@ -22,7 +22,7 @@ pub fn resource() -> Result<Vec<u8>> {
for row in rows.iter() {
let id: usize = row.0.into();
let name = str::from_utf8(&row.1).unwrap_or(".");
let name = &row.1;
let _ = writeln!(string, "{}: {}", id, name);
for (fd, f) in row.2.iter().enumerate() {
+1 -2
View File
@@ -1,7 +1,6 @@
use alloc::string::String;
use alloc::vec::Vec;
use core::fmt::Write;
use core::str;
use crate::context;
use crate::syscall;
@@ -22,7 +21,7 @@ pub fn resource() -> Result<Vec<u8>> {
for row in rows.iter() {
let id: usize = row.0.into();
let name = str::from_utf8(&row.1).unwrap_or(".");
let name = &row.1;
let _ = writeln!(string, "{}: {}", id, name);