Skip to content

Commit e27e1a6

Browse files
authored
fixed typo (#117)
* V 0.3 * V0.3: modify README * update Version to 0.3 * add code example for P.SEC.01 * modify P.SEC.01 * 3.30 review * update * update to 1.0 beta * fixed for P.NAM.01 * Improvement desc for P.NAM.05 && P.NAM.07 && P.UNS.MEM.04 * fixed code typo * update some items and add new items : p.uns.ffi.16-17-18 * fixed typo
1 parent d038abd commit e27e1a6

File tree

6 files changed

+0
-55
lines changed

6 files changed

+0
-55
lines changed

src/safe-guides/coding_practice/unsafe_rust/ffi.md

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,3 @@ Rust 可以通过C-ABI无缝与C语言打交道,也可以通过暴露 C-ABI
88

99
本小节内容,包含以上两种情况。
1010

11-
## 列表
12-
13-
- [P.UNS.FFI.01 避免从公开的 Rust API 直接传字符串到 C 中](./ffi/P.UNS.FFI.01.md)
14-
- [P.UNS.FFI.02 在使用标准库 std::ffi 模块提供的类型时需要仔细查看其文档](./ffi/P.UNS.FFI.02.md)
15-
- [P.UNS.FFI.03 当使用来自 C 的指针时,如果该指针需要管理内存,则需要为包装该指针的 Rust 类型实现 Drop 特质](./ffi/P.UNS.FFI.03.md)
16-
- [P.UNS.FFI.04 如果一个函数正在跨越 FFi 边界,那么需要处理 Panic](./ffi/P.UNS.FFI.04.md)
17-
- [P.UNS.FFI.05 建议使用诸如标准库或 `libc crate` 所提供的可移植类型别名,而不是特定平台的类型](./ffi/P.UNS.FFI.05.md)
18-
- [P.UNS.FFI.06 Rust 和 C 之间传递字符或字符串时需要注意字符串要符合 C-ABI 以及 字符串的编码](./ffi/P.UNS.FFI.06.md)
19-
- [P.UNS.FFI.07 不要为任何传入到外部的类型实现 Drop](./ffi/P.UNS.FFI.07.md)
20-
- [P.UNS.FFI.08 FFi 中要进行合理的错误处理](./ffi/P.UNS.FFI.08.md)
21-
- [P.UNS.FFI.09 当 Rust 调用外部 C 函数时,如果可以确认安全,可以通过引用来代替裸指针](./ffi/P.UNS.FFI.09.md)
22-
- [P.UNS.FFI.10 当 Rust 函数导出外部函数时,必须从设计上保证被跨线程调用的安全性](./ffi/P.UNS.FFI.10.md)
23-
- [P.UNS.FFI.11 如需引用指定为 `#[repr(packed)]` 内存布局的结构体成员字段要注意合理规避未定义行为](./ffi/P.UNS.FFI.11.md)
24-
- [P.UNS.FFI.12 当依赖 C 端传入参数时,需要在文档注释中不变性声明,根据不同的调用场景选择合适的安全抽象方式](./ffi/P.UNS.FFI.12.md)
25-
- [P.UNS.FFI.13 自定义数据类型要保证一致的数据布局](./ffi/G.UNS.FFI.13.md)
26-
- [P.UNS.FFI.14 在 FFi 中使用的类型应该拥有稳定布局](./ffi/G.UNS.FFI.14.md)
27-
- [P.UNS.FFI.15 从外部传入的不健壮类型的外部值要进行检查](./ffi/G.UNS.FFI.15.md)
28-

src/safe-guides/coding_practice/unsafe_rust/io.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,3 @@
22

33
Rust 标准库提供了 I/O 安全性,保证程序持有私有的原始句柄(raw handle),其他部分无法访问它。但是 `FromRawFd::from_raw_fd` 是 Unsafe 的,所以在 Safe Rust中无法做到 `File::from_raw(7)` 这种事。 在这个文件描述符上面进行` I/O` 操作,而这个文件描述符可能被程序的其他部分私自持有。
44

5-
## 列表
6-
7-
- [G.UNS.FIO.01 在使用原始句柄的时候,要注意 I/O 安全性](./io/G.UNS.FIO.01.md)

src/safe-guides/coding_practice/unsafe_rust/mem.md

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,3 @@
22

33
这里指 Unsafe Rust 下的数据布局、内存管理和使用相关规范。
44

5-
## 列表
6-
7-
- [P.UNS.MEM.01 要注意选择合适的结构体、元组、枚举的数据布局](./mem/P.UNS.MEM.01.md)
8-
- [P.UNS.MEM.02 不能修改其它进程/动态库的内存变量](./mem/P.UNS.MEM.02.md)
9-
- [P.UNS.MEM.03 不能让 `String/Vec` 自动 `Drop` 其它进程/动态库的内存数据](./mem/P.UNS.MEM.03.md)
10-
- [P.UNS.MEM.04 尽量用可重入(reentrant)版本的 C-API 或系统调用](./mem/P.UNS.MEM.04.md)
11-
- [P.UNS.MEM.05 如果需要使用位域,推荐使用第三方库](./mem/P.UNS.MEM.05.md)
12-
- [G.UNS.MEM.01 使用 `MaybeUninit<T>` 来处理未初始化的内存](./mem/G.UNS.MEM.01.md)

src/safe-guides/coding_practice/unsafe_rust/raw_ptr.md

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,3 @@ Rust提供了`*const T`(不变)和`*mut T`(可变)两种指针类型。
1111

1212
可见,原生指针并不受Safe Rust提供的那一层“安全外衣”保护,所以也被称为“裸指针”。
1313

14-
## 列表
15-
16-
- [P.UNS.PTR.01 不要将裸指针在多线程间共享](./raw_ptr/P.UNS.PTR.01.md)
17-
- [P.UNS.PTR.02 建议使用 `NonNull<T>` 来替代 `*mut T`](./raw_ptr/P.UNS.PTR.02.md)
18-
- [P.UNS.PTR.03 使用指针类型构造泛型结构体时,需要使用 PhantomData<T> 来指定 T上的协变和所有权](./raw_ptr/P.UNS.PTR.03.md)
19-
- [G.UNS.PTR.01 当指针类型被强转为和当前内存对齐不一致的指针类型时,禁止对其解引用](./raw_ptr/G.UNS.PTR.01.md)
20-
- [G.UNS.PTR.02 禁止将不可变指针手工转换为可变指针](./raw_ptr/G.UNS.PTR.02.md)
21-
- [G.UNS.PTR.03 尽量使用 pointer::cast 来代替 使用 as 强转指针](./raw_ptr/G.UNS.PTR.03.md)

src/safe-guides/coding_practice/unsafe_rust/safe_abstract.md

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,3 @@ Unsafe Rust 中 API 的安全性设计通常有两种方式:
99

1010
第二种方式,对 Unsafe 代码进行安全抽象,是 Rust 生态的一种约定俗成。
1111

12-
## 列表
13-
14-
- [P.UNS.SAS.01 代码中要注意是否会因为 Panic 发生而导致内存安全问题](./safe_abstract/P.UNS.SAS.01.md)
15-
- [P.UNS.SAS.02 Unsafe 代码编写者有义务检查代码是否满足安全不变式](./safe_abstract/P.UNS.SAS.02.md)
16-
- [P.UNS.SAS.03 不要随便在公开的 API 中暴露未初始化内存](./uafe_abstract/P.UNS.SAS.03.md)
17-
- [P.UNS.SAS.04 要考虑 Panic Safety 的情况](./safe_abstract/P.UNS.SAS.04.md)
18-
- [P.UNS.SAS.05 Unsafe 代码中手动实现 `auto trait` 需要注意](./safe_abstract/P.UNS.SAS.05.md)
19-
- [P.UNS.SAS.06 不要随便在公开的 API 中暴露裸指针](./safe_abstract/P.UNS.SAS.06.md)
20-
- [P.UNS.SAS.07 在抽象安全方法的同时,也建议为性能考虑而增加相应的 Unsafe 方法](./safe_abstract/P.UNS.SAS.07.md)
21-
- [P.UNS.SAS.08 函数参数是不可变借用的时候,返回值不应该是可变借用](./safe_abstract/P.UNS.SAS.08.md)
22-
- [P.UNS.SAS.09 在任何 Unsafe 块之前都应该加 `SAFETY` 注释](./safe_abstract/P.UNS.SAS.09.md)
23-
- [G.UNS.SAS.01 在公开的 unsafe 函数的文档中必须增加 Safety 注释](./safe_abstract/G.UNS.SAS.01.md)
24-
- [G.UNS.SAS.02 在 Unafe 函数中应该使用 `assert!` 而非 `debug_assert!` 去校验边界条件](./safe_abstract/G.UNS.SAS.02.md)
25-

src/safe-guides/coding_practice/unsafe_rust/union.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,3 @@ Union 是没有 tag 的 Enum,Enum 是有 tag 的Union 。
66

77
正因为没有 tag,Rust 编译器无法检查当前使用的正是哪个变体,所以,访问 Union 的变体是 Unsafe 的。
88

9-
## 列表
10-
11-
- [P.UNS.UNI.01 除了与 C 交互,尽量不要使用 Union](./union/P.UNS.UNI.01.md)
12-
- [P.UNS.UNI.02 不要把联合体的不同变体用在不同生命周期内](./union/P.UNS.UNI.02.md)

0 commit comments

Comments
 (0)