if() without {} in openssl 1.0.1f/crypto

After the disclosure of the source behind the iOS/OS X TLS/SSL bug being a caused by missing curly braces following an if statement, I decided to see if such a problem might happen to openssl. I ran N’SIQ Cpp Style on openssl-1.0.1f‘s crypto directory. I trimmed the nsiqcppstyle ruleset down to one rule which checks for lack of braces on an if, while, for, or do statement, then further modified that rule to only check if statements.

The report is presented below. Note that this is just openssl-1.0.1f/crypto, and not the full OpenSSL source tree.

nsiqcppstyle : N'SIQ Cpp Style ver 0.2.2.13
======================================================================================
Update: checking for update

http://nsiqcppstyle.appspot.com/update/linux

======================================================================================
= Analyzing crypto
======================================================================================
 - RULE_4_5_B_use_braces_even_for_one_if_statement is applied.
======================================================================================
Filter Scope "default" is applied.
Current Filter Setting (Following is applied sequentially)
 1. /.cvs/ is excluded
 2. /.svn/ is excluded
Current File extension and Language Settings
 C/C++=c,cxx,h,hpp,cpp,hxx
======================================================================================
[processing lines removed]
=================================== Summary Report ===================================
 ** Total Available Rules : 48
 ** Total Applied Rules : 1
 ** Total Violated Rules : 1
 ** Total Errors Occurs : 10195
 ** Total Analyzed Files : 828
 ** Total Violated Files Count: 512
 ** Build Quality : 38.16%
================================ Violated Rule Details ===============================
 - RULE_4_5_B_use_braces_even_for_one_if_statement rule violated : 10195
================================ Violated File Details ===============================
 - /home/adamf/openssl-1.0.1f/crypto/x509/x509spki.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/ec/ec2_mult.c violated in total : 69
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 69
 - /home/adamf/openssl-1.0.1f/crypto/hmac/hm_pmeth.c violated in total : 15
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 15
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_exp.c violated in total : 97
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 97
 - /home/adamf/openssl-1.0.1f/crypto/engine/eng_ctrl.c violated in total : 14
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 14
 - /home/adamf/openssl-1.0.1f/crypto/bio/bss_sock.c violated in total : 7
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 7
 - /home/adamf/openssl-1.0.1f/crypto/dso/dso_vms.c violated in total : 20
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 20
 - /home/adamf/openssl-1.0.1f/crypto/cms/cms_io.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/err/err_prn.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/bf/bf_opts.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/evp/e_idea.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/bio/bss_mem.c violated in total : 9
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 9
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/pcy_map.c violated in total : 5
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 5
 - /home/adamf/openssl-1.0.1f/crypto/x509/x509_lu.c violated in total : 39
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 39
 - /home/adamf/openssl-1.0.1f/crypto/s390xcap.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/o_init.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/asn1_pkey.c violated in total : 10
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 10
 - /home/adamf/openssl-1.0.1f/crypto/idea/i_ecb.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/dso/dso_dlfcn.c violated in total : 10
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 10
 - /home/adamf/openssl-1.0.1f/cryptoss_req_print.c violated in total : 5
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 5
 - /home/adamf/openssl-1.0.1f/crypto/ocsp/ocsp_ext.c violated in total : 35
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 35
 - /home/adamf/openssl-1.0.1f/crypto/pkcs12/p12_key.c violated in total : 15
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 15
 - /home/adamf/openssl-1.0.1f/crypto/uid.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/evp/e_aes_cbc_hmac_sha1.c violated in total : 15
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 15
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_purp.c violated in total : 77
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 77
 - /home/adamf/openssl-1.0.1f/crypto/asn1/x_long.c violated in total : 11
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 11
 - /home/adamf/openssl-1.0.1f/crypto/ec/ec_lib.c violated in total : 69
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 69
 - /home/adamf/openssl-1.0.1f/crypto/engine/eng_rdrand.c violated in total : 5
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 5
 - /home/adamf/openssl-1.0.1f/crypto/des/read_pwd.c violated in total : 24
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 24
 - /home/adamf/openssl-1.0.1f/crypto/jpake/jpake.c violated in total : 5
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 5
 - /home/adamf/openssl-1.0.1f/crypto/modes/ccm128.c violated in total : 17
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 17
 - /home/adamf/openssl-1.0.1f/crypto/engine/eng_init.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/bio/bss_rtcp.c violated in total : 11
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 11
 - /home/adamf/openssl-1.0.1f/crypto/evp/pmeth_gn.c violated in total : 15
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 15
 - /home/adamf/openssl-1.0.1f/crypto/engine/enginetest.c violated in total : 14
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 14
 - /home/adamf/openssl-1.0.1f/crypto/rsa/rsa_oaep.c violated in total : 13
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 13
 - /home/adamf/openssl-1.0.1f/crypto/engine/eng_fat.c violated in total : 24
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 24
 - /home/adamf/openssl-1.0.1f/crypto/bf/bf_skey.c violated in total : 5
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 5
 - /home/adamf/openssl-1.0.1f/crypto/ec/ecp_nistp256.c violated in total : 46
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 46
 - /home/adamf/openssl-1.0.1f/crypto/cms/cms_lib.c violated in total : 39
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 39
 - /home/adamf/openssl-1.0.1f/crypto/rsa/rsa_lib.c violated in total : 23
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 23
 - /home/adamf/openssl-1.0.1f/crypto/asn1_crl.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_enum.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/cryptoxt_dbxt_db.c violated in total : 37
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 37
 - /home/adamf/openssl-1.0.1f/crypto/des/enc_writ.c violated in total : 7
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 7
 - /home/adamf/openssl-1.0.1f/crypto/conf/conf_sap.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_sqr.c violated in total : 13
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 13
 - /home/adamf/openssl-1.0.1f/crypto/ec/ec2_oct.c violated in total : 30
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 30
 - /home/adamf/openssl-1.0.1f/crypto/asn1/a_object.c violated in total : 36
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 36
 - /home/adamf/openssl-1.0.1f/crypto/camellia/cmll_cbc.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/whrlpool/wp_dgst.c violated in total : 11
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 11
 - /home/adamf/openssl-1.0.1f/crypto/bn/exptest.c violated in total : 6
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 6
 - /home/adamf/openssl-1.0.1f/crypto/ecdh/ech_lib.c violated in total : 10
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 10
 - /home/adamf/openssl-1.0.1f/crypto/dsa/dsa_key.c violated in total : 13
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 13
 - /home/adamf/openssl-1.0.1f/crypto/x509/x509_set.c violated in total : 8
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 8
 - /home/adamf/openssl-1.0.1f/crypto/err/err.c violated in total : 44
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 44
 - /home/adamf/openssl-1.0.1f/crypto/hmac/hmac.c violated in total : 21
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 21
 - /home/adamf/openssl-1.0.1f/crypto/rsa/rsa_asn1.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/evp/m_sigver.c violated in total : 24
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 24
 - /home/adamf/openssl-1.0.1f/crypto/asn1/x_algor.c violated in total : 11
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 11
 - /home/adamf/openssl-1.0.1f/crypto/seed/seed_cbc.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/rand/rand_egd.c violated in total : 15
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 15
 - /home/adamf/openssl-1.0.1f/crypto/ec/ec_cvt.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_ctx.c violated in total : 17
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 17
 - /home/adamf/openssl-1.0.1f/crypto/mdc2/mdc2dgst.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/bio/bss_fd.c violated in total : 8
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 8
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_bcons.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/o_fips.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/modes/xts128.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_alt.c violated in total : 32
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 32
 - /home/adamf/openssl-1.0.1f/crypto/sha/sha256t.c violated in total : 6
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 6
 - /home/adamf/openssl-1.0.1f/crypto/o_str.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/engineb_dsa.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_add.c violated in total : 11
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 11
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_pcons.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/whrlpool/wp_test.c violated in total : 10
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 10
 - /home/adamf/openssl-1.0.1f/crypto/asn1/x_attrib.c violated in total : 6
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 6
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_mod.c violated in total : 24
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 24
 - /home/adamf/openssl-1.0.1f/crypto/ec/ecp_nistp224.c violated in total : 46
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 46
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/pcy_tree.c violated in total : 75
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 75
 - /home/adamf/openssl-1.0.1f/crypto/asn1asn_enc.c violated in total : 51
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 51
 - /home/adamf/openssl-1.0.1f/crypto/evp/digest.c violated in total : 16
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 16
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_depr.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/evp/e_des.c violated in total : 8
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 8
 - /home/adamf/openssl-1.0.1f/crypto/ec/ec_mult.c violated in total : 52
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 52
 - /home/adamf/openssl-1.0.1f/crypto/asn1/x_x509.c violated in total : 6
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 6
 - /home/adamf/openssl-1.0.1f/crypto/cversion.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/pem/pem_seal.c violated in total : 11
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 11
 - /home/adamf/openssl-1.0.1f/crypto/x509/x509_vpm.c violated in total : 23
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 23
 - /home/adamf/openssl-1.0.1f/crypto/rc4/rc4s.cpp violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/evp/names.c violated in total : 9
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 9
 - /home/adamf/openssl-1.0.1f/crypto/ocsp/ocsp_lib.c violated in total : 28
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 28
 - /home/adamf/openssl-1.0.1f/crypto/asn1asn_dec.c violated in total : 68
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 68
 - /home/adamf/openssl-1.0.1f/crypto/asn1/asn_mime.c violated in total : 67
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 67
 - /home/adamf/openssl-1.0.1f/crypto/asn1/a_gentm.c violated in total : 21
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 21
 - /home/adamf/openssl-1.0.1f/crypto/md2/md2test.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/asn1/a_set.c violated in total : 11
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 11
 - /home/adamf/openssl-1.0.1f/crypto/asn1/x_crl.c violated in total : 35
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 35
 - /home/adamf/openssl-1.0.1f/crypto/engineb_rsa.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/dh/dhtest.c violated in total : 21
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 21
 - /home/adamf/openssl-1.0.1f/crypto/ecdsa/ecs_vrf.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/des/ofb_enc.c violated in total : 5
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 5
 - /home/adamf/openssl-1.0.1f/crypto/x509/by_dir.c violated in total : 24
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 24
 - /home/adamf/openssl-1.0.1f/crypto/md4/md4s.cpp violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/conf/conf_api.c violated in total : 22
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 22
 - /home/adamf/openssl-1.0.1f/crypto/mem.c violated in total : 44
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 44
 - /home/adamf/openssl-1.0.1f/crypto/pkcs12/p12_crpt.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/asn1_x509.c violated in total : 73
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 73
 - /home/adamf/openssl-1.0.1f/crypto/bio/bf_lbuf.c violated in total : 24
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 24
 - /home/adamf/openssl-1.0.1f/crypto/asn1/p8_pkey.c violated in total : 9
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 9
 - /home/adamf/openssl-1.0.1f/crypto/evp/pmeth_fn.c violated in total : 15
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 15
 - /home/adamf/openssl-1.0.1f/crypto/md2/md2.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/asn1/p5_pbev2.c violated in total : 25
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 25
 - /home/adamf/openssl-1.0.1f/crypto/x509/x509_v3.c violated in total : 35
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 35
 - /home/adamf/openssl-1.0.1f/crypto/modes/cbc128.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/asn1/a_bitstr.c violated in total : 28
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 28
 - /home/adamf/openssl-1.0.1f/crypto/pkcs12/p12_crt.c violated in total : 47
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 47
 - /home/adamf/openssl-1.0.1f/crypto/rc5/rc5test.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/asn1/f_int.c violated in total : 20
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 20
 - /home/adamf/openssl-1.0.1f/crypto/evp/e_rc2.c violated in total : 10
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 10
 - /home/adamf/openssl-1.0.1f/crypto/aes/aes_wrap.c violated in total : 13
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 13
 - /home/adamf/openssl-1.0.1f/crypto/dsa/dsa_prn.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/objects/obj_lib.c violated in total : 11
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 11
 - /home/adamf/openssl-1.0.1f/crypto/ecdh/ech_key.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/ec/ec_curve.c violated in total : 10
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 10
 - /home/adamf/openssl-1.0.1f/crypto/cast/castopts.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/aes/aes_core.c violated in total : 12
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 12
 - /home/adamf/openssl-1.0.1f/crypto/bio/bio_lib.c violated in total : 46
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 46
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_prn.c violated in total : 24
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 24
 - /home/adamf/openssl-1.0.1f/crypto/dh/dh_depr.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/engine/eng_lib.c violated in total : 11
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 11
 - /home/adamf/openssl-1.0.1f/crypto/bio/bf_buff.c violated in total : 37
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 37
 - /home/adamf/openssl-1.0.1f/crypto/dh/dh_asn1.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/modes/gcm128.c violated in total : 82
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 82
 - /home/adamf/openssl-1.0.1f/crypto/lhash/lhash.c violated in total : 14
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 14
 - /home/adamf/openssl-1.0.1f/crypto/asn1/a_d2i_fp.c violated in total : 10
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 10
 - /home/adamf/openssl-1.0.1f/crypto/md5/md5s.cpp violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/rsa/rsa_pk1.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/rc2/rc2_ecb.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/asn1/a_sign.c violated in total : 15
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 15
 - /home/adamf/openssl-1.0.1f/crypto/bio/b_print.c violated in total : 49
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 49
 - /home/adamf/openssl-1.0.1f/crypto/hmac/hmactest.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/buffer/buffer.c violated in total : 5
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 5
 - /home/adamf/openssl-1.0.1f/crypto/pkcs7/pk7_doit.c violated in total : 94
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 94
 - /home/adamf/openssl-1.0.1f/crypto/ec/ec_oct.c violated in total : 5
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 5
 - /home/adamf/openssl-1.0.1f/crypto/des/qud_cksm.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/objects/obj_dat.c violated in total : 74
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 74
 - /home/adamf/openssl-1.0.1f/crypto/asn1/d2i_pr.c violated in total : 6
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 6
 - /home/adamf/openssl-1.0.1f/crypto/camellia/camellia.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_sxnet.c violated in total : 10
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 10
 - /home/adamf/openssl-1.0.1f/crypto/rsa/rsa_ameth.c violated in total : 79
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 79
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_crld.c violated in total : 54
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 54
 - /home/adamf/openssl-1.0.1f/crypto/engineb_ecdsa.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/pem/pem_info.c violated in total : 32
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 32
 - /home/adamf/openssl-1.0.1f/crypto/engineb_rand.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/buffer/buf_str.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/asn1asn_prn.c violated in total : 66
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 66
 - /home/adamf/openssl-1.0.1f/crypto/des/fcrypt.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/ecdsa/ecs_lib.c violated in total : 13
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 13
 - /home/adamf/openssl-1.0.1f/crypto/cms/cms_cd.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/evp/bio_ok.c violated in total : 34
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 34
 - /home/adamf/openssl-1.0.1f/crypto/asn1/n_pkey.c violated in total : 18
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 18
 - /home/adamf/openssl-1.0.1f/cryptohreadsh-lock.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/x509/x509_cmp.c violated in total : 19
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 19
 - /home/adamf/openssl-1.0.1f/crypto/md2/md2_dgst.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/bio/bss_conn.c violated in total : 34
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 34
 - /home/adamf/openssl-1.0.1f/crypto/engine/eng_rsax.c violated in total : 41
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 41
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_recp.c violated in total : 27
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 27
 - /home/adamf/openssl-1.0.1f/cryptoss_asn1.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/ocsp/ocsp_ht.c violated in total : 31
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 31
 - /home/adamf/openssl-1.0.1f/crypto/conf/conf_lib.c violated in total : 7
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 7
 - /home/adamf/openssl-1.0.1f/crypto/sha/sha512t.c violated in total : 7
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 7
 - /home/adamf/openssl-1.0.1f/crypto/ecdsa/ecdsatest.c violated in total : 50
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 50
 - /home/adamf/openssl-1.0.1f/crypto/rsa/rsa_crpt.c violated in total : 13
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 13
 - /home/adamf/openssl-1.0.1f/crypto/asn1asn_new.c violated in total : 42
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 42
 - /home/adamf/openssl-1.0.1f/crypto/pem/pem_all.c violated in total : 18
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 18
 - /home/adamf/openssl-1.0.1f/crypto/pem/pem_lib.c violated in total : 69
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 69
 - /home/adamf/openssl-1.0.1f/crypto/evp/evp_test.c violated in total : 7
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 7
 - /home/adamf/openssl-1.0.1f/crypto/idea/i_skey.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/dh/dh_check.c violated in total : 14
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 14
 - /home/adamf/openssl-1.0.1f/crypto/ecdsa/ecs_ossl.c violated in total : 21
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 21
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/pcy_cache.c violated in total : 25
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 25
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_info.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/sha/shatest.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/pem/pvkfmt.c violated in total : 88
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 88
 - /home/adamf/openssl-1.0.1f/crypto/des/des_opts.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/dsa/dsagen.c violated in total : 6
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 6
 - /home/adamf/openssl-1.0.1f/crypto/x509/x509name.c violated in total : 40
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 40
 - /home/adamf/openssl-1.0.1f/crypto/pkcs12/p12_init.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/bn/bnspeed.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/asn1/asn1_par.c violated in total : 48
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 48
 - /home/adamf/openssl-1.0.1f/crypto/pem/pem_oth.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/asn1/x_pkey.c violated in total : 7
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 7
 - /home/adamf/openssl-1.0.1f/crypto/rand/rand_unix.c violated in total : 11
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 11
 - /home/adamf/openssl-1.0.1f/crypto/bio/bf_nbio.c violated in total : 14
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 14
 - /home/adamf/openssl-1.0.1f/crypto/dsa/dsatest.c violated in total : 9
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 9
 - /home/adamf/openssl-1.0.1f/cryptoss_verify_ctx.c violated in total : 14
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 14
 - /home/adamf/openssl-1.0.1f/crypto/evp/evp_pbe.c violated in total : 23
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 23
 - /home/adamf/openssl-1.0.1f/crypto/rsa/rsa_test.c violated in total : 7
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 7
 - /home/adamf/openssl-1.0.1f/crypto/dsa/dsa_ameth.c violated in total : 64
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 64
 - /home/adamf/openssl-1.0.1f/crypto/ec/ec2_smpl.c violated in total : 87
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 87
 - /home/adamf/openssl-1.0.1f/crypto/bio/bss_file.c violated in total : 43
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 43
 - /home/adamf/openssl-1.0.1f/crypto/cmac/cmac.c violated in total : 26
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 26
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_conf.c violated in total : 33
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 33
 - /home/adamf/openssl-1.0.1f/crypto/asn1/a_print.c violated in total : 13
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 13
 - /home/adamf/openssl-1.0.1f/crypto/des/cbc_cksm.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/evp/encode.c violated in total : 18
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 18
 - /home/adamf/openssl-1.0.1f/crypto/lhash/lh_test.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/asn1/f_string.c violated in total : 20
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 20
 - /home/adamf/openssl-1.0.1f/crypto/asn1_x509a.c violated in total : 8
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 8
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_asid.c violated in total : 41
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 41
 - /home/adamf/openssl-1.0.1f/crypto/mdc2/mdc2test.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_exp2.c violated in total : 24
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 24
 - /home/adamf/openssl-1.0.1f/crypto/bio/bss_acpt.c violated in total : 25
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 25
 - /home/adamf/openssl-1.0.1f/crypto/asn1/asn_moid.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/evp/p5_crpt.c violated in total : 13
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 13
 - /home/adamf/openssl-1.0.1f/crypto/pqueue/pqueue.c violated in total : 12
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 12
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_mpi.c violated in total : 7
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 7
 - /home/adamf/openssl-1.0.1f/crypto/pkcs12/p12_decr.c violated in total : 5
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 5
 - /home/adamf/openssl-1.0.1f/crypto/evp/e_rc4_hmac_md5.c violated in total : 9
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 9
 - /home/adamf/openssl-1.0.1f/crypto/des/read2pwd.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/cms/cms_env.c violated in total : 42
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 42
 - /home/adamf/openssl-1.0.1f/crypto/bn/expspeed.c violated in total : 31
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 31
 - /home/adamf/openssl-1.0.1f/crypto/asn1/a_strnid.c violated in total : 21
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 21
 - /home/adamf/openssl-1.0.1f/crypto/ec/ecp_oct.c violated in total : 40
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 40
 - /home/adamf/openssl-1.0.1f/crypto/des/destest.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/cast/c_skey.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/cryptoss_rsp_sign.c violated in total : 75
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 75
 - /home/adamf/openssl-1.0.1f/crypto/pkcs7/pk7_asn1.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/dh/dh_gen.c violated in total : 15
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 15
 - /home/adamf/openssl-1.0.1f/crypto/ec/ecp_nistputil.c violated in total : 8
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 8
 - /home/adamf/openssl-1.0.1f/crypto/store/str_mem.c violated in total : 8
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 8
 - /home/adamf/openssl-1.0.1f/crypto/engine/eng_openssl.c violated in total : 9
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 9
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_rand.c violated in total : 13
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 13
 - /home/adamf/openssl-1.0.1f/crypto/ec/ecp_smpl.c violated in total : 212
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 212
 - /home/adamf/openssl-1.0.1f/crypto/dsa/dsa_lib.c violated in total : 29
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 29
 - /home/adamf/openssl-1.0.1f/crypto/cmac/cm_ameth.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3prin.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/md4/md4test.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/dso/dso_beos.c violated in total : 7
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 7
 - /home/adamf/openssl-1.0.1f/crypto/rand/md_rand.c violated in total : 24
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 24
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_addr.c violated in total : 91
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 91
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/pcy_data.c violated in total : 10
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 10
 - /home/adamf/openssl-1.0.1f/crypto/ui/ui_lib.c violated in total : 35
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 35
 - /home/adamf/openssl-1.0.1f/crypto/asn1/x_name.c violated in total : 33
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 33
 - /home/adamf/openssl-1.0.1f/crypto/ocsp/ocsp_srv.c violated in total : 31
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 31
 - /home/adamf/openssl-1.0.1f/crypto/evp/p_seal.c violated in total : 7
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 7
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_ia5.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/des/str2key.c violated in total : 11
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 11
 - /home/adamf/openssl-1.0.1f/crypto/asn1/x_x509a.c violated in total : 18
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 18
 - /home/adamf/openssl-1.0.1f/crypto/des/cfb64ede.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/rc5/rc5_ecb.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_kron.c violated in total : 10
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 10
 - /home/adamf/openssl-1.0.1f/crypto/cms/cms_ess.c violated in total : 27
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 27
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_nist.c violated in total : 27
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 27
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_ncons.c violated in total : 47
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 47
 - /home/adamf/openssl-1.0.1f/crypto/cms/cms_asn1.c violated in total : 9
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 9
 - /home/adamf/openssl-1.0.1f/crypto/md4/md4.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/bn/asm/x86_64-gcc.c violated in total : 20
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 20
 - /home/adamf/openssl-1.0.1f/crypto/sha/sha512.c violated in total : 9
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 9
 - /home/adamf/openssl-1.0.1f/crypto/asn1/a_bool.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/x509/x509_d2.c violated in total : 7
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 7
 - /home/adamf/openssl-1.0.1f/crypto/asn1/x_info.c violated in total : 6
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 6
 - /home/adamf/openssl-1.0.1f/crypto/evp/p_verify.c violated in total : 6
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 6
 - /home/adamf/openssl-1.0.1f/crypto/asn1/a_i2d_fp.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/srp/srp_lib.c violated in total : 31
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 31
 - /home/adamf/openssl-1.0.1f/crypto/rc5/rc5_skey.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/pkcs7/example.c violated in total : 20
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 20
 - /home/adamf/openssl-1.0.1f/crypto/evp/evp_pkey.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/ec/eck_prn.c violated in total : 44
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 44
 - /home/adamf/openssl-1.0.1f/crypto/ocsp/ocsp_vfy.c violated in total : 23
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 23
 - /home/adamf/openssl-1.0.1f/crypto/pkcs12/p12_kiss.c violated in total : 25
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 25
 - /home/adamf/openssl-1.0.1f/crypto/asn1/a_dup.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/sha/sha1test.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/ripemd/asm/rips.cpp violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/md5/md5.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/lhash/lh_stats.c violated in total : 5
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 5
 - /home/adamf/openssl-1.0.1f/crypto/asn1/x_bignum.c violated in total : 10
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 10
 - /home/adamf/openssl-1.0.1f/crypto/cms/cms_smime.c violated in total : 79
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 79
 - /home/adamf/openssl-1.0.1f/crypto/asn1/a_utctm.c violated in total : 23
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 23
 - /home/adamf/openssl-1.0.1f/crypto/bn/bntest.c violated in total : 87
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 87
 - /home/adamf/openssl-1.0.1f/crypto/des/rpw.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/ec/ec_check.c violated in total : 7
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 7
 - /home/adamf/openssl-1.0.1f/crypto/engine/eng_list.c violated in total : 5
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 5
 - /home/adamf/openssl-1.0.1f/crypto/rsa/rsa_gen.c violated in total : 35
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 35
 - /home/adamf/openssl-1.0.1f/crypto/des/pcbc_enc.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/cryptoss_req_utils.c violated in total : 5
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 5
 - /home/adamf/openssl-1.0.1f/crypto/dso/dso_lib.c violated in total : 18
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 18
 - /home/adamf/openssl-1.0.1f/crypto/ecdh/ech_ossl.c violated in total : 6
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 6
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_mul.c violated in total : 80
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 80
 - /home/adamf/openssl-1.0.1f/crypto/cms/cms_att.c violated in total : 8
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 8
 - /home/adamf/openssl-1.0.1f/crypto/conf/conf_def.c violated in total : 53
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 53
 - /home/adamf/openssl-1.0.1f/crypto/comp/comp_lib.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/ec/ectest.c violated in total : 290
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 290
 - /home/adamf/openssl-1.0.1f/crypto/rsa/rsa_x931.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/engineb_asnmth.c violated in total : 6
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 6
 - /home/adamf/openssl-1.0.1f/crypto/evp/p5_crpt2.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/modes/cfb128.c violated in total : 9
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 9
 - /home/adamf/openssl-1.0.1f/crypto/stack/stack.c violated in total : 29
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 29
 - /home/adamf/openssl-1.0.1f/crypto/ec/ec_ameth.c violated in total : 48
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 48
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_asm.c violated in total : 21
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 21
 - /home/adamf/openssl-1.0.1f/crypto/des/enc_read.c violated in total : 15
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 15
 - /home/adamf/openssl-1.0.1f/crypto/asn1/f_enum.c violated in total : 18
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 18
 - /home/adamf/openssl-1.0.1f/crypto/asn1/asn1_lib.c violated in total : 35
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 35
 - /home/adamf/openssl-1.0.1f/crypto/ecdh/ecdhtest.c violated in total : 37
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 37
 - /home/adamf/openssl-1.0.1f/cryptohreads/mttest.c violated in total : 50
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 50
 - /home/adamf/openssl-1.0.1f/crypto/engine/eng_cnf.c violated in total : 18
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 18
 - /home/adamf/openssl-1.0.1f/crypto/asn1/a_mbstr.c violated in total : 23
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 23
 - /home/adamf/openssl-1.0.1f/crypto/evp/evp_lib.c violated in total : 10
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 10
 - /home/adamf/openssl-1.0.1f/crypto/x509v3abtest.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/evp/bio_b64.c violated in total : 24
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 24
 - /home/adamf/openssl-1.0.1f/crypto/asn1/asn_pack.c violated in total : 9
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 9
 - /home/adamf/openssl-1.0.1f/crypto/asn1_spki.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/asn1/evp_asn1.c violated in total : 14
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 14
 - /home/adamf/openssl-1.0.1f/crypto/pkcs12/p12_attr.c violated in total : 15
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 15
 - /home/adamf/openssl-1.0.1f/crypto/conf/conf_mod.c violated in total : 37
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 37
 - /home/adamf/openssl-1.0.1f/cryptoss_rsp_verify.c violated in total : 38
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 38
 - /home/adamf/openssl-1.0.1f/crypto/des/cfb_enc.c violated in total : 5
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 5
 - /home/adamf/openssl-1.0.1f/crypto/dsa/dsa_gen.c violated in total : 51
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 51
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_mont.c violated in total : 51
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 51
 - /home/adamf/openssl-1.0.1f/crypto/pem/pem_pkey.c violated in total : 16
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 16
 - /home/adamf/openssl-1.0.1f/crypto/pkcs12/p12_add.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_sqrt.c violated in total : 47
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 47
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_print.c violated in total : 29
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 29
 - /home/adamf/openssl-1.0.1f/crypto/asn1/bio_asn1.c violated in total : 31
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 31
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/pcy_lib.c violated in total : 15
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 15
 - /home/adamf/openssl-1.0.1f/crypto/evp/evp_key.c violated in total : 23
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 23
 - /home/adamf/openssl-1.0.1f/crypto/dsa/dsa_asn1.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/asn1_bitst.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/evp/bio_enc.c violated in total : 22
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 22
 - /home/adamf/openssl-1.0.1f/crypto/ec/ecp_nist.c violated in total : 19
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 19
 - /home/adamf/openssl-1.0.1f/crypto/conf/cnf_save.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/engine/eng_dyn.c violated in total : 22
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 22
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_lib.c violated in total : 25
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 25
 - /home/adamf/openssl-1.0.1f/crypto/pkcs12/p12_mutl.c violated in total : 9
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 9
 - /home/adamf/openssl-1.0.1f/crypto/ec/ec_key.c violated in total : 53
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 53
 - /home/adamf/openssl-1.0.1f/crypto/evp/e_aes.c violated in total : 82
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 82
 - /home/adamf/openssl-1.0.1f/crypto/dh/dh_pmeth.c violated in total : 11
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 11
 - /home/adamf/openssl-1.0.1f/crypto/dh/dh_key.c violated in total : 17
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 17
 - /home/adamf/openssl-1.0.1f/crypto/x509/x_all.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/asn1/d2i_pu.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_blind.c violated in total : 34
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 34
 - /home/adamf/openssl-1.0.1f/crypto/asn1/p5_pbe.c violated in total : 8
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 8
 - /home/adamf/openssl-1.0.1f/crypto/ui/ui_util.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/x509/x509cset.c violated in total : 7
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 7
 - /home/adamf/openssl-1.0.1f/crypto/rsa/rsa_saos.c violated in total : 6
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 6
 - /home/adamf/openssl-1.0.1f/crypto/asn1/a_type.c violated in total : 7
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 7
 - /home/adamf/openssl-1.0.1f/crypto/asn1_req.c violated in total : 23
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 23
 - /home/adamf/openssl-1.0.1f/crypto/bf/bftest.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/ex_data.c violated in total : 20
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 20
 - /home/adamf/openssl-1.0.1f/crypto/rsa/rsa_eay.c violated in total : 77
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 77
 - /home/adamf/openssl-1.0.1f/crypto/ec/ec_asn1.c violated in total : 60
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 60
 - /home/adamf/openssl-1.0.1f/crypto/evp/e_null.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/pkcs7/pk7_lib.c violated in total : 47
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 47
 - /home/adamf/openssl-1.0.1f/crypto/x509/x509_req.c violated in total : 22
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 22
 - /home/adamf/openssl-1.0.1f/crypto/des/set_key.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/x509/x509_att.c violated in total : 44
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 44
 - /home/adamf/openssl-1.0.1f/crypto/des/ecb_enc.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/engine/eng_table.c violated in total : 19
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 19
 - /home/adamf/openssl-1.0.1f/crypto/rsa/rsa_depr.c violated in total : 5
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 5
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_genn.c violated in total : 8
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 8
 - /home/adamf/openssl-1.0.1f/crypto/evp/pmeth_lib.c violated in total : 27
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 27
 - /home/adamf/openssl-1.0.1f/crypto/des/cbc3_enc.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/rsa/rsa_pss.c violated in total : 22
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 22
 - /home/adamf/openssl-1.0.1f/crypto/rc4/rc4.c violated in total : 6
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 6
 - /home/adamf/openssl-1.0.1f/crypto/bf/bf_ecb.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/asn1/a_bytes.c violated in total : 29
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 29
 - /home/adamf/openssl-1.0.1f/crypto/armcap.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/evp/p_lib.c violated in total : 31
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 31
 - /home/adamf/openssl-1.0.1f/crypto/pkcs7/pk7_smime.c violated in total : 35
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 35
 - /home/adamf/openssl-1.0.1f/crypto/evp/evp_enc.c violated in total : 47
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 47
 - /home/adamf/openssl-1.0.1f/crypto/cms/cms_dd.c violated in total : 8
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 8
 - /home/adamf/openssl-1.0.1f/crypto/pkcs12/p12_npas.c violated in total : 16
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 16
 - /home/adamf/openssl-1.0.1f/crypto/asn1/x_req.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_skey.c violated in total : 5
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 5
 - /home/adamf/openssl-1.0.1f/crypto/engineb_dh.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/ocsp/ocsp_prn.c violated in total : 33
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 33
 - /home/adamf/openssl-1.0.1f/crypto/md5/md5test.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/mem_clr.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/aes/aes_ecb.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/bio/b_sock.c violated in total : 22
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 22
 - /home/adamf/openssl-1.0.1f/crypto/engine/eng_cryptodev.c violated in total : 67
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 67
 - /home/adamf/openssl-1.0.1f/crypto/x509/x509_r2x.c violated in total : 7
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 7
 - /home/adamf/openssl-1.0.1f/crypto/ppccap.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/x509/x509_obj.c violated in total : 16
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 16
 - /home/adamf/openssl-1.0.1f/crypto/evp/e_des3.c violated in total : 9
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 9
 - /home/adamf/openssl-1.0.1f/cryptoss_rsp_print.c violated in total : 24
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 24
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/pcy_node.c violated in total : 13
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 13
 - /home/adamf/openssl-1.0.1f/crypto/aes/aes_cbc.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/cast/c_ecb.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_cpols.c violated in total : 26
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 26
 - /home/adamf/openssl-1.0.1f/crypto/evp/p_sign.c violated in total : 7
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 7
 - /home/adamf/openssl-1.0.1f/crypto/aes/aes_x86core.c violated in total : 6
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 6
 - /home/adamf/openssl-1.0.1f/crypto/pkcs7/pk7_mime.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/seed/seed_ecb.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/x509/x509_vfy.c violated in total : 204
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 204
 - /home/adamf/openssl-1.0.1f/crypto/rsa/rsa_sign.c violated in total : 12
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 12
 - /home/adamf/openssl-1.0.1f/crypto/bio/bss_null.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/bio/bss_dgram.c violated in total : 74
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 74
 - /home/adamf/openssl-1.0.1f/crypto/modes/ctr128.c violated in total : 8
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 8
 - /home/adamf/openssl-1.0.1f/crypto/cast/casttest.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_pci.c violated in total : 6
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 6
 - /home/adamf/openssl-1.0.1f/crypto/engineb_pkmeth.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/bn/divtest.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_utl.c violated in total : 96
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 96
 - /home/adamf/openssl-1.0.1f/crypto/des/ecb3_enc.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/evp/bio_md.c violated in total : 18
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 18
 - /home/adamf/openssl-1.0.1f/crypto/rand/rand_os2.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/asn1/a_strex.c violated in total : 62
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 62
 - /home/adamf/openssl-1.0.1f/crypto/hmac/hm_ameth.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/sparcv9cap.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/rsa/rsa_pmeth.c violated in total : 71
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 71
 - /home/adamf/openssl-1.0.1f/crypto/dh/dh_lib.c violated in total : 18
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 18
 - /home/adamf/openssl-1.0.1f/crypto/asn1/bio_ndef.c violated in total : 12
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 12
 - /home/adamf/openssl-1.0.1f/crypto/engineb_cipher.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/asn1/a_utf8.c violated in total : 25
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 25
 - /home/adamf/openssl-1.0.1f/crypto/rand/randtest.c violated in total : 7
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 7
 - /home/adamf/openssl-1.0.1f/crypto/dsa/dsa_sign.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/rc2/rc2_skey.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/engineb_digest.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_gf2m.c violated in total : 92
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 92
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3conf.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_shift.c violated in total : 10
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 10
 - /home/adamf/openssl-1.0.1f/crypto/objects/obj_xref.c violated in total : 13
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 13
 - /home/adamf/openssl-1.0.1f/crypto/cms/cms_pwri.c violated in total : 21
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 21
 - /home/adamf/openssl-1.0.1f/crypto/store/str_lib.c violated in total : 74
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 74
 - /home/adamf/openssl-1.0.1f/crypto/asn1asn_fre.c violated in total : 20
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 20
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_prime.c violated in total : 65
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 65
 - /home/adamf/openssl-1.0.1f/crypto/x509/x509type.c violated in total : 6
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 6
 - /home/adamf/openssl-1.0.1f/crypto/pkcs7/pk7_attr.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/asn1/ameth_lib.c violated in total : 26
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 26
 - /home/adamf/openssl-1.0.1f/crypto/asn1/a_enum.c violated in total : 15
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 15
 - /home/adamf/openssl-1.0.1f/crypto/rsa/rsa_chk.c violated in total : 8
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 8
 - /home/adamf/openssl-1.0.1f/crypto/sha/sha.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/bio/bf_null.c violated in total : 9
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 9
 - /home/adamf/openssl-1.0.1f/crypto/ec/ec_pmeth.c violated in total : 17
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 17
 - /home/adamf/openssl-1.0.1f/crypto/bio/bss_log.c violated in total : 5
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 5
 - /home/adamf/openssl-1.0.1f/crypto/engineb_ecdh.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/ec/ecp_nistp521.c violated in total : 45
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 45
 - /home/adamf/openssl-1.0.1f/crypto/ui/ui_openssl.c violated in total : 33
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 33
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_gcd.c violated in total : 65
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 65
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_pku.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_extku.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/o_time.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/mem_dbg.c violated in total : 19
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 19
 - /home/adamf/openssl-1.0.1f/crypto/evp/p_open.c violated in total : 5
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 5
 - /home/adamf/openssl-1.0.1f/crypto/ocsp/ocsp_cl.c violated in total : 30
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 30
 - /home/adamf/openssl-1.0.1f/crypto/dsa/dsa_ossl.c violated in total : 38
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 38
 - /home/adamf/openssl-1.0.1f/crypto/rand/rand_lib.c violated in total : 10
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 10
 - /home/adamf/openssl-1.0.1f/crypto/ripemd/rmdtest.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/store/str_meth.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/modes/ofb128.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/asn1/a_time.c violated in total : 14
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 14
 - /home/adamf/openssl-1.0.1f/crypto/x509/x509rset.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/pkcs12/p12_p8e.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/pem/pem_pk8.c violated in total : 13
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 13
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_bitst.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/camellia/cmll_misc.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/engineb_store.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/des/rand_key.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/ec/ec_print.c violated in total : 9
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 9
 - /home/adamf/openssl-1.0.1f/crypto/asn1/a_digest.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/pkcs7/bio_ber.c violated in total : 23
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 23
 - /home/adamf/openssl-1.0.1f/crypto/pem/pem_sign.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/modes/cts128.c violated in total : 32
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 32
 - /home/adamf/openssl-1.0.1f/crypto/rand/randfile.c violated in total : 20
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 20
 - /home/adamf/openssl-1.0.1f/crypto/asn1/a_int.c violated in total : 35
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 35
 - /home/adamf/openssl-1.0.1f/cryptoss_conf.c violated in total : 35
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 35
 - /home/adamf/openssl-1.0.1f/crypto/dh/dh_ameth.c violated in total : 42
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 42
 - /home/adamf/openssl-1.0.1f/crypto/ec/ecp_mont.c violated in total : 11
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 11
 - /home/adamf/openssl-1.0.1f/crypto/rsa/rsa_prn.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/srp/srp_vfy.c violated in total : 47
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 47
 - /home/adamf/openssl-1.0.1f/crypto/pkcs12/p12_utl.c violated in total : 10
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 10
 - /home/adamf/openssl-1.0.1f/crypto/asn1/a_verify.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/rsa/rsa_ssl.c violated in total : 5
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 5
 - /home/adamf/openssl-1.0.1f/crypto/dsa/dsa_depr.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/camellia/cmll_ecb.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/bio/b_dump.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/rc2/rc2_cbc.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/des/rpc_enc.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/cms/cms_sd.c violated in total : 95
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 95
 - /home/adamf/openssl-1.0.1f/crypto/idea/ideatest.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/asn1/x_pubkey.c violated in total : 24
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 24
 - /home/adamf/openssl-1.0.1f/crypto/x509/by_file.c violated in total : 15
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 15
 - /home/adamf/openssl-1.0.1f/cryptoss_rsp_utils.c violated in total : 12
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 12
 - /home/adamf/openssl-1.0.1f/crypto/rc4/rc4_skey.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/bio/bss_bio.c violated in total : 53
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 53
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_x931p.c violated in total : 33
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 33
 - /home/adamf/openssl-1.0.1f/crypto/cms/cms_enc.c violated in total : 9
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 9
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_lib.c violated in total : 63
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 63
 - /home/adamf/openssl-1.0.1f/crypto/asn1asn_utl.c violated in total : 19
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 19
 - /home/adamf/openssl-1.0.1f/crypto/sha/sha1.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/asn1/asn1_gen.c violated in total : 50
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 50
 - /home/adamf/openssl-1.0.1f/crypto/ripemd/rmd160.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_akey.c violated in total : 6
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 6
 - /home/adamf/openssl-1.0.1f/crypto/rand/rand_win.c violated in total : 19
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 19
 - /home/adamf/openssl-1.0.1f/crypto/dso/dso_win32.c violated in total : 18
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 18
 - /home/adamf/openssl-1.0.1f/crypto/evp/e_xcbc_d.c violated in total : 1
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 1
 - /home/adamf/openssl-1.0.1f/crypto/cryptlib.c violated in total : 43
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 43
 - /home/adamf/openssl-1.0.1f/crypto/rc4/rc4test.c violated in total : 3
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 3
 - /home/adamf/openssl-1.0.1f/crypto/x509v3/v3_ocsp.c violated in total : 26
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 26
 - /home/adamf/openssl-1.0.1f/crypto/dsa/dsa_pmeth.c violated in total : 16
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 16
 - /home/adamf/openssl-1.0.1f/crypto/dso/dso_dl.c violated in total : 9
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 9
 - /home/adamf/openssl-1.0.1f/crypto/cmac/cm_pmeth.c violated in total : 12
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 12
 - /home/adamf/openssl-1.0.1f/crypto/comp/c_zlib.c violated in total : 31
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 31
 - /home/adamf/openssl-1.0.1f/crypto/rc2/rc2test.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/LPdir_win.c violated in total : 4
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 4
 - /home/adamf/openssl-1.0.1f/crypto/bn/bn_word.c violated in total : 14
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 14
 - /home/adamf/openssl-1.0.1f/crypto/objects/o_names.c violated in total : 18
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 18
 - /home/adamf/openssl-1.0.1f/crypto/ecdsa/ecs_sign.c violated in total : 2
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 2
 - /home/adamf/openssl-1.0.1f/crypto/bio/bio_cb.c violated in total : 7
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 7
 - /home/adamf/openssl-1.0.1f/crypto/x509/x509_trs.c violated in total : 19
 * RULE_4_5_B_use_braces_even_for_one_if_statement : 19

				
				
			

You Say You Want An Education? – Follow Up

 

The response to my blog post on a 4-year university computer science curriculum made entirely of Coursera’s free online courses has been overwhelming, primarily thanks to the reddit community of /r/programming. The members of /r/programming generated well over 400 comments, almost all of which were a positive discussion on the curriculum or online learning in general.

 

2111 net votes, 415 comments!

There were a number of valid criticisms of my curriculum. First, a few people thought that I should move Probabilistic Graphical Models to the 4th year and move Machine Learning to the second year.  I had picked PGM as one of the available math courses and underestimated the difficulty of this course after reading the syllabus, leading me to put PGM in the 2nd year, and for ML I overestimated the difficulty. Swapping these two courses makes sense.

Commenters on reddit and on the blog wrote that there wasn’t much math in the curriculum.  I didn’t see other fitting math courses on Cousera, but I’m sure Coursera will pick up more math courses which could then be added to the curriculum, or could replace a few of the later CS courses that would be considered optional in most university curriculums (some of the image processing courses, perhaps).

Others pointed out that MIT’s OpenCourseWare has an excellent selection of material available for the online student – which is true, there are 2100 courses and counting (although, some of those 2100 courses are different instances of the same course) – but the OpenCourseWare courses largely don’t have recorded lecture,  and none appear to have online quizzing, online homework grading, forums, or peer grading, all of which are aspects of the other massive online open courses such as Udacity, Coursera, or EdX. That’s not to diminish OpenCourseWare, which is an amazing effort and in many ways could be seen as the mother of all the MOOCs that exist today. Redditor bstpierre777 used OCW to create a matching set of electives for my curriculum.

Saylor’s computer science curriculum was brought up in a few comments. Honestly, I’d never seen Saylor before. They have (as of October 2nd, 2012) 267 courses available in a variety of subjects and they offer curricula for various subject matter, including Computer Science. I think that’s awesome! A quick look at a few of the Saylor courses makes me think that the Saylor approach is very self-directed; there are no video lectures by a professor, but instead suggested readings, homeworks and tests that the student completes at their own pace. If you’ve taken a Saylor course I’d love to hear about it in the comments.

I think the classes are only part of a complete education. The people you meet in the course of your education (however you get that education) are just as important as the content of the classes. Top tier schools will not lose students to MOOCs because their selection processes create a cohort of smart, talented students that will interact with each other for the rest of their lives. When I attended RIT I lived in Computer Science House, and that community was as valuable as the classes at RIT.

That’s not at all to say you couldn’t get the same experience and value from online learning. The forums for the classes I’ve taken on Coursera have been active with a very high signal to noise ratio (although, some of that signal is answers to homeworks and quizzing, which facilitates both checking your answers and cheating). It’s easy to think that a MOOC like Coursera could have a forum for students in the same “year” of their curriculum, a forum that exists beyond a single class. The forum members would form a graduating class, and while they may never meet in person, it’s not clear that they need to.

 

The most popular day on my blog, ever.

 

I’d like to thank everyone who read the post (and thanks to @jessicamckellar for suggestions, edits and proofreading). I had over 30,000 unique page views from the reddit link and my posted netted 2111 upvotes on Reddit. Online education is clearly a hot topic and I’m excited to see where it goes next and happy to have contributed to the conversation.

You Say You Want An Education?

With the recent announcement of 17 new schools participating in the massive open online course (MOOC) site Coursera.org, I thought it would be an interesting exercise to see if it was possible to design a reasonable computer science curriculum using just Coursera courses, where “reasonable” is a curriculum that roughly mirrors the coursework required for a four-year university computer science degree.

I’ve looked over all of the available Coursera courses as of September 21st, 2012, and created a four-year curriculum. I’ve tried to follow the curricula suggested by real world colleges; in particular I’ve loosely based the approach on MIT’s course 6 curriculum (specifically, 6-3).

“Semester” is a loose term in this case, as the courses vary in length from 6 to 14 weeks. I’ve assumed it would be possible to take 4 core curriculum courses in the same semester, and that the student would take an additional course that is not computer science related.

My aim is a computer science education that gives the student a background in:

  • Algorithms
  • Control (robotics, other mechanical interactions)
  • Data structures
  • Debugging
  • Electrical engineering
  • Hardware
  • Programming language theory
  • Software architecture & design
  • Networking
  • Systems programming
  • Mathematics, including:
    • Statistics
    • Probability
    • Logic
    • Calculus

Little time is spent on specific programming languages; once the student is exposed to Python and some other languages in the first semester they are expected to be able to pick up other languages. That will take some work outside of the core course work but the Internet has so many good resources for learning the specifics of programming languages that I’ve chosen not to include classes on specific languages.

Below is the curriculum. I’ll discuss some of the reasons behind the choices later, but first take some time to click through to the course descriptions and see what you think.

Year 1, 1st Semester

Computer Science 101

Calculus: Single Variable

Statistics One

Learn To Program: The Fundamentals

Year 1, 2nd Semester

Introduction To Logic

Data Analysis

Learn To Program: Crafting Quality Code

Introduction to Systematic Program Design

Year 2, 1st Semester

Algorithms

Fundamentals of Electrical Engineering (first half)

Writing in the Sciences

Introduction to Computer Networks

Year 2, 2nd Semester

Networks, Friends, Money and Bytes

The Hardware/Software Interface

Probabilistic Graphical Models

Introduction to Mathematical Thinking

Year 3, 1st Semester

Fundamentals of Electrical Engineering (second half)

Algorithms Part 2

Control of Mobile Robots

Automata

Year 3, 2nd Semester

Programming Languages

Game Theory

Human Computer Interaction

Digital Signal Processing

Year 4, 1st Semester

Computer Architecture

Cryptography

Pattern-Oriented Software Arch. For Concurrent and Networked Software

Image and Video Processing

Year 4, 2nd Semester

Compilers

Machine Learning

Parallel Computing

Natural Language Processing

The curriculum above is purely focused on computer science and mathematics. I’ve left off the basic science and liberal arts classes, but Coursera offers many options in this regard and the student can pick or choose the classes that best fit the student’s interests.

It’d be awesome if Coursera had a course in discrete math. I think that would complement the other math courses in my curriculum nicely. Additionally, it’d be cool if Coursera had a course on operating systems development, or possibly another low-level programming topic like file systems or databases. Frankly, I’m amazed at the depths and breadth of the computer science courses available, and it’s a credit to Coursera that they’ve built such an impressive catalog. In 2012, a student can take the majority of a university computer science curriculum for free thanks to Coursera. That was not possible in 2011.

Learning Online

I’ve taken a few courses on Coursera and other MOOCs and for the classes I’ve taken the medium works well. Like in-person classes, the Coursera courses have lecture notes, slides, homework assignments, tests and quizzes, and online forums for the students to discuss the class. However, with a MOOC, the student can fast forward and rewind the lecturer. Online, quizzes and tests are primarily multiple choice, but Coursera randomizes the questions and the order of the answer (and often picks a set of multiple choices answers from a large pool of answers for a single question). Essay questions are peer graded, which is a process that I think is still evolving – in the class I took with peer graded papers, two of the papers I graded (out of 3) were verbatim copies of Wikipedia articles-which made grading those easy-but the 3rd paper was original content, and I’m sure I evaluated that content with less skill than a professor would.

In my Compilers class, the professor had a clever online tool that could be used to create proofs, and using this tool was required to complete the homework assignments. I think that more and more tools of this kind will need to be created to deal with assignments that aren’t multiple choice quizzes or peer graded essays. For the Compilers class our programming assignments were graded by a script that ran a series of unit tests against our compilers. Grading programming assignments this way felt natural to me – after all, at work my code has to pass a gauntlet of unit tests before the code can go into production.

On the other hand, MOOCs have a few challenges due to their scale (challenges which I’m sure people are working on solutions for). One of these is group projects. As a software engineer I work in groups all the time, and  as much as I hated group work in college it is an important skill for the professional programmer. Public speaking is another important skill that is easy to teach in a classroom setting but hard at scale.

There’s also a set of classes where students can be given the same assignment but produce correct but radically different work, or classes where the deliverables are too complex to be judged by software or other students. For example, MIT’s 6.033 class has several design projects whose deliverables are complex system designs. What is the best way to grade such assignments?

Coursera and its kin are evolving rapidly, and there’s been a lot of research into online education. I’m excited to see what learning online looks like next year.

Final Thoughts

I don’t think it will be long before Coursera, Udacity, EdX, or other MOOCs start grouping courses into curricula.  Khan Academy already has a knowledge map of exercises that build on another, only letting the student progress once they have mastered a required skill for the next level. I hope we’ll see curricula in MOOCs that is created and curated by professors or other education professionals.

What do you think of my computer science curriculum? What would you add or remove? Have you tried a class with Coursera or another MOOC?

SysAdvent 2011

For the second year in a row I’ve contributed to the wonderful SysAdvent series, a collection of 25 articles on systems administration curated by Jordan Sissel. My article is a collection of my Thoughts On Load Testing.

 

 

Jeopardy! Categories Word Cloud

 

During the Watson-related madness earlier this year I wrote a script to put all of the Jeopardy! game data from J! Archive into a SQL database (they have no API so I parsed the very-broken HTML for each game). I never ended up doing anything with the data, but there’s been renewed interest around the house in this data so I took some time to make a word cloud of the Jeopardy! categories.

What Does A Sysadmin Look Like In 10 Years?

Crystal ball image courtesy of Daniel De Jager

At Boston DevOpsDays 2011 last week I hosted an open spaces discussion during which we prognosticated on what the everyday sysadmin would look like in 10 years time.

A lively discussion followed and out of it we came up with a few key predictions that we all loosely agreed on; the future sysadmin will:

Write code.

We all agreed that there’s little place for a future sysadmin that can’t (at the minimum) write scripts, and nominally write and understand code in a non-shell programming language.

Do a lot of data analytics.

We thought that any future sysadmin will be much more of a data-driven engineer; they’ll build systems based on engineering not gut feelings or “because it worked last time”. The future sysadmin can do math because the future sysadmin does more science.

Work on a higher level of abstraction.

The future sysadmin needs to build complex systems by treating what we now think of as systems as building blocks. They’ll not think as much about network ports, IP addresses and machines but instead think about the interactions of applications and instances of those applications.

Focus on service delivery.

The future sysadmin has monitors that says if the service is providing the business function, not if the host is pingable. The future sysadmin understands what the service provides and how to make sure that service is being delivered reliably.

Be on call (with her developer friends) and own the problem.

She’s the crisis manager and may have the best understanding of the data as they relate to the system as a whole. She’s got the full stack view that gives her the credibility to the be first line of defense in a tough situation.

Lead the root cause analysis.

The future sysadmin, if anything, has a more complex job because they need to bring together not just computing resources but data and human resources. The future systems administrator is more about the system and less about the administration.

What do you predict?

With the rise of PaaS and IaaS, we see movement away from the traditional role of the sysadmin into a more app-focused, development-aware admin; someone who understands the business needs and the full technology stack, and I feel like the leading edge of administration is already at this point, as the people you see speaking at all the conferences and writing all the books do these “future sysadmin” tasks already. What do you think about these predictions? What do you think the future sysadmin will look like?

SysAdvent

Don’t tell this blog, but I’ve recently published two articles are part of SysAdvent, a collaborative advent calendar style blog put together by Jordan Sissel (@jordansissel). SysAdvent released a new sysadmin related article every day of December though Christmas Day.

My two articles:

The rest of the articles are wonderful as well, and I encourage you to read them, and, in 2011, to write your own SysAdvent articles.

Recent Readings

Web

Fixing UNIX Filenames – An interesting discussion of the non-standard handling of the “standards” in UNIX filesystem naming, such as newlines in names.

An ‘Accordion’ of Wood and Glass – A look at where all the money you spent on your calculus textbook went.

Strace – the Sysadmin’s Microscope – An excellent article on using strace(1), the best way to find out what your process is really doing in Linux.

Print

Garner’s Modern American Usage - Okay, I’ve not read the whole thing, but I keep it on my desk at work to figure out if my word choice is correct, or if it makes me sound like an asshole (and, all of the usage examples are from recent media, including great references to Superbad when needed).

Web Operations – Allspaw is listed as the author but this book is written by many people in the DevOps community (and hey, I reviewed Patrick DeBois’ chapter on monitoring). This book offers excellent practical advice to people doing web operations.

Rework – The 37signals guys wrote this book about the lessons they’ve learned running a successful startup, and while the book is pretentious, it does have solid advice (for example: don’t hire fast; don’t worry about being “professional”, build software you want to use).

Nerd Pub Trivia @ ITA

Every year ITA Software sends us all out on a boat to eat, drink and make merry, and this year I thought it would be fun to host a Nerd Pub Trivia. The idea came when, while playing regular pub trivia, the picture round category was “Famous Nerds”. My friends and I thought we were a lock for a perfect picture round score, but instead of pictures of Turing Award winners we got pictures of movie and TV nerds. We joked about how awesome it would be if there was real nerd pub trivia, so that’s what I made happen on ITA’s booze cruise.

The format was a shortened pub trivia, with songs played after reading each question:

  • 1 round of 4 questions with each question being worth either 1, 3, 5 or 7 points (you decide, you can only use each value once)
  • 1 special picture round (2 points for each item correctly identified)
  • 1 round of 4 questions with each question being worth 2, 4, 6 or 8 points (akin to the first round)
  • 2 final questions on which you wager up to 10 points each (win or lose what you wager)

Without further ado, here are the questions:

Famous Nerds: Who wrote in a famous RFC, “be conservative in what you do, be liberal in what you accept from others”?

Databases: What does ACID stand for?

Networking: How many bytes are there in an Ethernet address?

Systems Programming: What is the only UNIX syscall that returns twice?

Data Structures: This colorful binary tree is self-balancing and contains no data in the tree’s leaf nodes – what is it?

Operating Systems: Which process typically has the PID of 1 on a UNIX system?

Computing History: Which of these technologies was not invented at XEROX PARC: Ethernet, The Mouse, The Windowing GUI, laser printer?

SciFi/Fantasy: Who is the Kwistaz Haderach?

Video Games: What item must you retrieve from the Dungeons Of Doom in Nethack?

Role Playing Games: What does THAC0 stand for?

And of course, we had a picture round: ID The Programming Language & ID Carrier/GDS By IATA Code (hey, we’re an airline software company, I have to have some airline trivia).

I won’t post the answers here but feel free to post your answers in the comments (and be aware there’s a few correct answers to some of these questions).

Also, if you’re a nerd looking for a job at a cool place to work, check out ITA’s current job offerings. Not to spam my readers but it really is fun to work at a place where you can host a nerd pub trivia and 10 teams join the fun.

Boston DevOps @ MS NERD

Boston DevOps meeting regular Vladimir Vuksan has has gone and done a great thing – he’s setup the next meeting at Microsoft NERD, which is at One Memorial Drive in Cambridge, MA (about a mile from where we usually meet).

Vladimir has setup a registration link here.

This promises to be a great show; Vlad and Jeff Buchbinder will be giving a presentation on lessons learned while reengineering deployments at their companies. You can read more about what is on the agenda on this post on Vlad’s blog.

See you there – Tuesday, August 3rd, 2010, from 6pm until 8pm.

←Older