diff --git a/ssl/d1_clnt.c b/ssl/d1_clnt.c
index 3f9e814..ae6f36d 100644
--- a/ssl/d1_clnt.c
+++ b/ssl/d1_clnt.c
@@ -490,8 +490,9 @@
         ret = 1;
         s->ctx->stats.sess_connect_good++;
 
-        if (cb != NULL)
+        if (cb != NULL) {
           cb(s, SSL_CB_HANDSHAKE_DONE, 1);
+        }
 
         /* done with handshaking */
         s->d1->handshake_read_seq = 0;
diff --git a/ssl/s3_clnt.c b/ssl/s3_clnt.c
index 42be93a..f3bdefd 100644
--- a/ssl/s3_clnt.c
+++ b/ssl/s3_clnt.c
@@ -199,8 +199,9 @@
         /* fallthrough */
       case SSL_ST_CONNECT:
       case SSL_ST_BEFORE | SSL_ST_CONNECT:
-        if (cb != NULL)
+        if (cb != NULL) {
           cb(s, SSL_CB_HANDSHAKE_START, 1);
+        }
 
         if (s->init_buf == NULL) {
           buf = BUF_MEM_new();
@@ -445,8 +446,9 @@
            * hashes. */
           if (s->s3->tlsext_channel_id_new) {
             ret = tls1_record_handshake_hashes_for_channel_id(s);
-            if (ret <= 0)
+            if (ret <= 0) {
               goto end;
+            }
           }
           if ((SSL_get_mode(s) & SSL_MODE_HANDSHAKE_CUTTHROUGH) &&
               ssl3_can_cutthrough(s) &&
diff --git a/ssl/s3_srvr.c b/ssl/s3_srvr.c
index 6ecca21..2045590 100644
--- a/ssl/s3_srvr.c
+++ b/ssl/s3_srvr.c
@@ -394,8 +394,9 @@
         if (ssl_cipher_requires_server_key_exchange(s->s3->tmp.new_cipher) ||
             ((alg_a & SSL_aPSK) && s->psk_identity_hint)) {
           ret = ssl3_send_server_key_exchange(s);
-          if (ret <= 0)
+          if (ret <= 0) {
             goto end;
+          }
         } else {
           skip = 1;
         }
diff --git a/ssl/ssl_cert.c b/ssl/ssl_cert.c
index 624c41a..f0f8da5 100644
--- a/ssl/ssl_cert.c
+++ b/ssl/ssl_cert.c
@@ -1050,8 +1050,9 @@
   }
 
   cpk->chain = chain;
-  if (rv == 0)
+  if (rv == 0) {
     rv = 1;
+  }
 
 err:
   if (flags & SSL_BUILD_CHAIN_FLAG_CHECK) {
diff --git a/ssl/ssl_txt.c b/ssl/ssl_txt.c
index c950ce8..3c13609 100644
--- a/ssl/ssl_txt.c
+++ b/ssl/ssl_txt.c
@@ -145,8 +145,9 @@
   }
 
   for (i = 0; i < x->session_id_length; i++) {
-    if (BIO_printf(bp, "%02X", x->session_id[i]) <= 0)
+    if (BIO_printf(bp, "%02X", x->session_id[i]) <= 0) {
       goto err;
+    }
   }
 
   if (BIO_puts(bp, "\n    Session-ID-ctx: ") <= 0) {
diff --git a/ssl/t1_lib.c b/ssl/t1_lib.c
index e26351b..19e52a4 100644
--- a/ssl/t1_lib.c
+++ b/ssl/t1_lib.c
@@ -255,8 +255,9 @@
   ret = 1;
 
 done:
-  if (extension_types)
+  if (extension_types) {
     OPENSSL_free(extension_types);
+  }
   return ret;
 }
 
