binary_to_term(Str, [safe])
小问题
现有二进制如下, 需要将其转换为mod_gvg
出于安全的考虑,需要使用`erlang:binary_to_term(Bin, [safe]).
1 | Eshell V6.2 (abort with ^G) |
现存在模块safe
1 | -module(safe). |
1 | Eshell V6.2 (abort with ^G) |
明明mod_gvg
已经在safe
代码中,为什么还是提示失败?
将代码修改如下:
1 | -module(safe). |
再次执行,一切ok
1 | Eshell V6.2 (abort with ^G) |
说明在编译代码时,编译器有做优化,将
1 | get(mod_gvg) -> 0; |
简化为get(_) -> 0.
因此, 如果要标明原子存在, 需要是有用的代码.