소스 검색

util: Deprecate `syscall_prefix`

Using the prefix only for the host architecture is often not enough,
kernels usually provide symbols for more architectures, which are
used by multilib applications. Handling them might or might not be
necessary depending on the use case. Due to that complexity, we
decided to let the callers to handle prefixes the way they prefer.
Mike Rostecki 1 년 전
부모
커밋
bd6ba3ad8b
1개의 변경된 파일7개의 추가작업 그리고 0개의 파일을 삭제
  1. 7 0
      aya/src/util.rs

+ 7 - 0
aya/src/util.rs

@@ -265,6 +265,13 @@ fn parse_kernel_symbols(reader: impl BufRead) -> Result<BTreeMap<u64, String>, i
 /// # Errors
 ///
 /// Returns [`std::io::ErrorKind::NotFound`] if the prefix can't be guessed. Returns other [`std::io::Error`] kinds if `/proc/kallsyms` can't be opened or is somehow invalid.
+#[deprecated(
+    since = "0.12.0",
+    note = "On some systems - commonly on 64 bit kernels that support running \
+    32 bit applications - the syscall prefix depends on what architecture an \
+    application is compiled for, therefore attaching to only one prefix is \
+    incorrect and can lead to security issues."
+)]
 pub fn syscall_prefix() -> Result<&'static str, io::Error> {
     const PREFIXES: [&str; 7] = [
         "sys_",