From c3778fae6f57d30381476ea0110cb445e52b407a Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Mon, 15 Dec 2014 15:35:34 -0500 Subject: [PATCH] libstd: add a dummy field to `OsRng` to avoid out of module construction --- src/libstd/rand/os.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/libstd/rand/os.rs b/src/libstd/rand/os.rs index c0eebe135c3c..c1e426602694 100644 --- a/src/libstd/rand/os.rs +++ b/src/libstd/rand/os.rs @@ -187,7 +187,10 @@ mod imp { /// - iOS: calls SecRandomCopyBytes as /dev/(u)random is sandboxed /// This does not block. #[allow(missing_copy_implementations)] - pub struct OsRng; + pub struct OsRng { + // dummy field to ensure that this struct cannot be constructed outside of this module + _dummy: (), + } #[repr(C)] struct SecRandom; @@ -204,7 +207,7 @@ mod imp { impl OsRng { /// Create a new `OsRng`. pub fn new() -> IoResult { - Ok(OsRng) + Ok(OsRng { _dummy: () }) } }