diff --git a/src/QBar/Qubes/AdminAPI.hs b/src/QBar/Qubes/AdminAPI.hs index ed54d3b66f9913137f00e191b4ef3b3aad2395af..2f36b32a3e6ca84bf022f22bf91008d0fac7b55a 100644 --- a/src/QBar/Qubes/AdminAPI.hs +++ b/src/QBar/Qubes/AdminAPI.hs @@ -1,6 +1,6 @@ module QBar.Qubes.AdminAPI where -import Control.Monad (forM) +import Control.Monad (forM_) import Data.Binary import Data.Binary.Get import Data.Binary.Put @@ -21,6 +21,7 @@ data QubesAdminReturn | Exception { excType :: BL.ByteString, excTraceback :: BL.ByteString, excFormatString :: BL.ByteString, excFields :: [BL.ByteString] } deriving (Eq, Ord, Show, Read) +putLazyByteStringNul :: BL.ByteString -> Put putLazyByteStringNul x = do when (0 `BL.elem` x) $ error "string mustn't contain any \\x00 bytes" putLazyByteString x @@ -34,7 +35,7 @@ instance Binary QubesAdminReturn where putWord8 0x31 >> putWord8 0x00 putLazyByteStringNul evSubject putLazyByteStringNul evEvent - forM evProperties $ \(k, v) -> do + forM_ evProperties $ \(k, v) -> do putLazyByteStringNul k putLazyByteStringNul v putWord8 0x00 @@ -43,7 +44,7 @@ instance Binary QubesAdminReturn where putLazyByteStringNul excType putLazyByteStringNul excTraceback putLazyByteStringNul excFormatString - forM excFields putLazyByteStringNul + forM_ excFields putLazyByteStringNul putWord8 0x00 get = do msgType <- getWord8