Fix CBC-CTS+CBC-MAC flag check
authorJussi Kivilinna <jussi.kivilinna@iki.fi>
Tue, 19 Jun 2018 15:34:33 +0000 (18:34 +0300)
committerJussi Kivilinna <jussi.kivilinna@iki.fi>
Tue, 19 Jun 2018 16:29:25 +0000 (19:29 +0300)
* cipher/cipher.c (_gcry_cipher_open_internal): Check flags separately
instead of AND masking two flags to zero.
--

Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
cipher/cipher.c

index d6cd0b4..1b547a4 100644 (file)
@@ -503,7 +503,7 @@ _gcry_cipher_open_internal (gcry_cipher_hd_t *handle,
                     | GCRY_CIPHER_ENABLE_SYNC
                     | GCRY_CIPHER_CBC_CTS
                     | GCRY_CIPHER_CBC_MAC))
-         || (flags & GCRY_CIPHER_CBC_CTS & GCRY_CIPHER_CBC_MAC)))
+         || ((flags & GCRY_CIPHER_CBC_CTS) && (flags & GCRY_CIPHER_CBC_MAC))))
     err = GPG_ERR_CIPHER_ALGO;
 
   /* check that a valid mode has been requested */