chiark / gitweb /
Do not leak in log piece identity of face-down cards
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 28 Jul 2021 18:18:31 +0000 (19:18 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 28 Jul 2021 18:18:31 +0000 (19:18 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
daemon/api.rs
src/shapelib.rs

index c40fdda33a4f8c5d4d0219b88d2d4305a96b441b..c5020cf854c1d177b059de536803db0088a3eea8 100644 (file)
@@ -615,6 +615,7 @@ api_route!{
               ioccults,&gs.occults,gpl,gpc,ipc,
               "flipped"
             )?;
+            // todo: name the most visible aspect in the log
             gpc.face = ((RawFaceId::from(gpc.face) + 1) % nfaces).into();
             return ((
               wrc,
index f01681378522a1736744db61751c0caa5a626514..a59a8fc2c341d5e5bb8438bdda9e02ac7ffa117e 100644 (file)
@@ -347,10 +347,15 @@ impl Item {
 
   #[throws(IE)]
   fn describe_face(&self, face: FaceId) -> Html {
-    // When we are not occulted, we can show are true identity
-    // even if we have a back.
-    let face = self.faces.get(face).unwrap_or(&self.faces[0]);
-    self.descs[ face.desc ].clone()
+    self.descs[
+      if let Some(face) = self.faces.get(face) {
+        face.desc
+      } else if let Some(back) = &self.back {
+        return back.describe_html()?;
+      } else {
+        self.faces[0].desc
+      }
+    ].clone()
   }
 }