You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
초기화되지 않은 변수를 읽는 것을 허용하면 보안적 취약점이 될 수 있습니다. MaybeUninit::uninit()을 사용하지 않는 것이 제일이지만 쉽지 않군요. Idiomatic Rust는 struct를 초기화할 때 모든 field를 명시해야 하므로 부분적으로 초기화되지 않는 경우가 없음을 보장할 수 있습니다.
메모리 안전성
RVO나 move forwarding과 같은 최적화는 항상 일어나는 것이 아니며, 때문에 스택에 너무 큰 임시 변수를 할당하면서 stack overflow가 일어날 수 있습니다. (Stack-consuming ArrayVec #50)
자기 자신을 참조하는 변수들은 최종 할당되는 공간의 주소를 기준으로 초기화해야 합니다.
Idiomatic (?)
가장 Rusty 한 코드는 var = SomeThing::new(...); 로 초기화하는 것입니다. 최종적인 코드의 모습은 이런 식이 되도록 리팩토링해야 합니다.
The text was updated successfully, but these errors were encountered:
변수를 초기화하는 일에는 세 가지를 고려해야 합니다:
보안
초기화되지 않은 변수를 읽는 것을 허용하면 보안적 취약점이 될 수 있습니다.
MaybeUninit::uninit()
을 사용하지 않는 것이 제일이지만 쉽지 않군요. Idiomatic Rust는 struct를 초기화할 때 모든 field를 명시해야 하므로 부분적으로 초기화되지 않는 경우가 없음을 보장할 수 있습니다.메모리 안전성
Idiomatic (?)
가장 Rusty 한 코드는
var = SomeThing::new(...);
로 초기화하는 것입니다. 최종적인 코드의 모습은 이런 식이 되도록 리팩토링해야 합니다.The text was updated successfully, but these errors were encountered: