浏览代码

aya: Truncate long program names

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
Dave Tucker 3 年之前
父节点
当前提交
437432cdd6
共有 1 个文件被更改,包括 4 次插入12 次删除
  1. 4 12
      aya/src/programs/mod.rs

+ 4 - 12
aya/src/programs/mod.rs

@@ -201,13 +201,6 @@ pub enum ProgramError {
         /// program name
         name: String,
     },
-
-    /// The program is too long.
-    #[error("the program name `{name}` iss longer than 16 characters")]
-    NameTooLong {
-        /// program name
-        name: String,
-    },
 }
 
 /// Allows the Fd of a loaded [`Program`] to be retrieved
@@ -424,13 +417,12 @@ fn load_program(prog_type: bpf_prog_type, data: &mut ProgramData) -> Result<(),
     let mut ret;
 
     let prog_name = if let Some(name) = &data.name {
-        let name = name.clone();
+        let mut name = name.clone();
+        if name.len() > 16 {
+            name.truncate(16);
+        }
         let prog_name = CString::new(name.clone())
             .map_err(|_| ProgramError::InvalidName { name: name.clone() })?;
-
-        if prog_name.to_bytes().len() > 16 {
-            return Err(ProgramError::NameTooLong { name });
-        }
         Some(prog_name)
     } else {
         None