chiark / gitweb /
accounts: PermSet: Fix to actually shift (!)
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 19 May 2021 19:52:05 +0000 (20:52 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 19 May 2021 21:01:40 +0000 (22:01 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/accounts.rs

index f51a9948e03e747c293ba36f8e59cfc8b1e9a965..ca509f406e47806f26f2d3ae88fa2f4ee54be1e3 100644 (file)
@@ -547,7 +547,7 @@ pub mod loaded_acl {
   {
     fn from(i: I) -> Self {
       PermSet(
-        i.into_iter().fold(0, |b, i| b | i.borrow().to_u64().unwrap()),
+        i.into_iter().fold(0, |b, i| b | 1 << (i.borrow().to_u8().unwrap())),
         PhantomData,
       )
     }
@@ -557,7 +557,7 @@ pub mod loaded_acl {
     let mut s = HashSet::new();
     for n in 0.. {
       let v = match FromPrimitive::from_u64(n) { Some(v) => v, None => break };
-      if packed.0 & n != 0 { s.insert(v); }
+      if packed.0 & (1 << n) != 0 { s.insert(v); }
     }
     s
   }