diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/apps.c | 8 | ||||
-rw-r--r-- | apps/asn1pars.c | 8 | ||||
-rw-r--r-- | apps/ca.c | 12 | ||||
-rw-r--r-- | apps/cms.c | 12 | ||||
-rw-r--r-- | apps/dgst.c | 3 | ||||
-rw-r--r-- | apps/dsa.c | 6 | ||||
-rw-r--r-- | apps/ec.c | 6 | ||||
-rw-r--r-- | apps/ecparam.c | 3 | ||||
-rw-r--r-- | apps/enc.c | 9 | ||||
-rw-r--r-- | apps/engine.c | 12 | ||||
-rw-r--r-- | apps/gendsa.c | 3 | ||||
-rw-r--r-- | apps/genpkey.c | 3 | ||||
-rw-r--r-- | apps/genrsa.c | 3 | ||||
-rw-r--r-- | apps/ocsp.c | 19 | ||||
-rw-r--r-- | apps/openssl.c | 9 | ||||
-rw-r--r-- | apps/passwd.c | 6 | ||||
-rw-r--r-- | apps/pkcs12.c | 6 | ||||
-rw-r--r-- | apps/pkcs8.c | 6 | ||||
-rw-r--r-- | apps/pkey.c | 6 | ||||
-rw-r--r-- | apps/pkeyutl.c | 14 | ||||
-rw-r--r-- | apps/req.c | 9 | ||||
-rw-r--r-- | apps/rsa.c | 6 | ||||
-rw-r--r-- | apps/rsautl.c | 9 | ||||
-rw-r--r-- | apps/s_client.c | 10 | ||||
-rw-r--r-- | apps/s_server.c | 10 | ||||
-rw-r--r-- | apps/s_socket.c | 3 | ||||
-rw-r--r-- | apps/smime.c | 3 | ||||
-rw-r--r-- | apps/speed.c | 6 | ||||
-rw-r--r-- | apps/spkac.c | 3 | ||||
-rw-r--r-- | apps/srp.c | 37 | ||||
-rw-r--r-- | apps/x509.c | 6 |
31 files changed, 81 insertions, 175 deletions
diff --git a/apps/apps.c b/apps/apps.c index d68594ab27..46cc5a05e7 100644 --- a/apps/apps.c +++ b/apps/apps.c @@ -2165,9 +2165,7 @@ void jpake_client_auth(BIO *out, BIO *conn, const char *secret) BIO_puts(out, "JPAKE authentication succeeded, setting PSK\n"); - if (psk_key) - OPENSSL_free(psk_key); - + OPENSSL_free(psk_key); psk_key = BN_bn2hex(JPAKE_get_shared_key(ctx)); BIO_pop(bconn); @@ -2197,9 +2195,7 @@ void jpake_server_auth(BIO *out, BIO *conn, const char *secret) BIO_puts(out, "JPAKE authentication succeeded, setting PSK\n"); - if (psk_key) - OPENSSL_free(psk_key); - + OPENSSL_free(psk_key); psk_key = BN_bn2hex(JPAKE_get_shared_key(ctx)); BIO_pop(bconn); diff --git a/apps/asn1pars.c b/apps/asn1pars.c index 7e1dfb7327..01a50f4e5d 100644 --- a/apps/asn1pars.c +++ b/apps/asn1pars.c @@ -321,11 +321,9 @@ int asn1parse_main(int argc, char **argv) ERR_print_errors(bio_err); if (buf != NULL) BUF_MEM_free(buf); - if (name != NULL) - OPENSSL_free(name); - if (header != NULL) - OPENSSL_free(header); - if (strictpem && str != NULL) + OPENSSL_free(name); + OPENSSL_free(header); + if (strictpem) OPENSSL_free(str); ASN1_TYPE_free(at); if (osk != NULL) @@ -2271,8 +2271,7 @@ static int do_revoke(X509 *x509, CA_DB *db, int type, char *value) ok = 1; end: for (i = 0; i < DB_NUMBER; i++) { - if (row[i] != NULL) - OPENSSL_free(row[i]); + OPENSSL_free(row[i]); } return (ok); } @@ -2339,8 +2338,7 @@ static int get_certificate_status(const char *serial, CA_DB *db) } end: for (i = 0; i < DB_NUMBER; i++) { - if (row[i] != NULL) - OPENSSL_free(row[i]); + OPENSSL_free(row[i]); } return (ok); } @@ -2564,8 +2562,7 @@ int make_revoked(X509_REVOKED *rev, const char *str) end: - if (tmp) - OPENSSL_free(tmp); + OPENSSL_free(tmp); ASN1_OBJECT_free(hold); ASN1_GENERALIZEDTIME_free(comp_time); ASN1_ENUMERATED_free(rtmp); @@ -2719,8 +2716,7 @@ int unpack_revinfo(ASN1_TIME **prevtm, int *preason, ASN1_OBJECT **phold, end: - if (tmp) - OPENSSL_free(tmp); + OPENSSL_free(tmp); ASN1_GENERALIZEDTIME_free(comp_time); return ret; diff --git a/apps/cms.c b/apps/cms.c index 907b108fc5..25e3ad62fd 100644 --- a/apps/cms.c +++ b/apps/cms.c @@ -1121,12 +1121,9 @@ int cms_main(int argc, char **argv) sk_OPENSSL_STRING_free(sksigners); if (skkeys) sk_OPENSSL_STRING_free(skkeys); - if (secret_key) - OPENSSL_free(secret_key); - if (secret_keyid) - OPENSSL_free(secret_keyid); - if (pwri_tmp) - OPENSSL_free(pwri_tmp); + OPENSSL_free(secret_key); + OPENSSL_free(secret_keyid); + OPENSSL_free(pwri_tmp); ASN1_OBJECT_free(econtent_type); if (rr) CMS_ReceiptRequest_free(rr); @@ -1152,8 +1149,7 @@ int cms_main(int argc, char **argv) BIO_free(in); BIO_free(indata); BIO_free_all(out); - if (passin) - OPENSSL_free(passin); + OPENSSL_free(passin); return (ret); } diff --git a/apps/dgst.c b/apps/dgst.c index 69211d34ac..a679cb9fe8 100644 --- a/apps/dgst.c +++ b/apps/dgst.c @@ -451,8 +451,7 @@ int dgst_main(int argc, char **argv) sk_OPENSSL_STRING_free(sigopts); if (macopts) sk_OPENSSL_STRING_free(macopts); - if (sigbuf) - OPENSSL_free(sigbuf); + OPENSSL_free(sigbuf); BIO_free(bmd); return (ret); } diff --git a/apps/dsa.c b/apps/dsa.c index c23ed5dac8..d864c75022 100644 --- a/apps/dsa.c +++ b/apps/dsa.c @@ -275,10 +275,8 @@ int dsa_main(int argc, char **argv) end: BIO_free_all(out); DSA_free(dsa); - if (passin) - OPENSSL_free(passin); - if (passout) - OPENSSL_free(passout); + OPENSSL_free(passin); + OPENSSL_free(passout); return (ret); } #else /* !OPENSSL_NO_DSA */ @@ -271,10 +271,8 @@ int ec_main(int argc, char **argv) BIO_free(in); BIO_free_all(out); EC_KEY_free(eckey); - if (passin) - OPENSSL_free(passin); - if (passout) - OPENSSL_free(passout); + OPENSSL_free(passin); + OPENSSL_free(passout); return (ret); } #else /* !OPENSSL_NO_EC */ diff --git a/apps/ecparam.c b/apps/ecparam.c index 082df260ab..dd0e8f5c61 100644 --- a/apps/ecparam.c +++ b/apps/ecparam.c @@ -489,8 +489,7 @@ int ecparam_main(int argc, char **argv) BN_free(ec_gen); BN_free(ec_order); BN_free(ec_cofactor); - if (buffer) - OPENSSL_free(buffer); + OPENSSL_free(buffer); BIO_free(in); BIO_free_all(out); EC_GROUP_free(group); diff --git a/apps/enc.c b/apps/enc.c index 83067b830a..8b892cfea9 100644 --- a/apps/enc.c +++ b/apps/enc.c @@ -564,10 +564,8 @@ int enc_main(int argc, char **argv) } end: ERR_print_errors(bio_err); - if (strbuf != NULL) - OPENSSL_free(strbuf); - if (buff != NULL) - OPENSSL_free(buff); + OPENSSL_free(strbuf); + OPENSSL_free(buff); BIO_free(in); BIO_free_all(out); BIO_free(benc); @@ -575,8 +573,7 @@ int enc_main(int argc, char **argv) #ifdef ZLIB BIO_free(bzl); #endif - if (pass) - OPENSSL_free(pass); + OPENSSL_free(pass); return (ret); } diff --git a/apps/engine.c b/apps/engine.c index 448802bc61..c7c0aafd75 100644 --- a/apps/engine.c +++ b/apps/engine.c @@ -252,10 +252,8 @@ static int util_verbose(ENGINE *e, int verbose, BIO *out, const char *indent) } OPENSSL_free(name); name = NULL; - if (desc) { - OPENSSL_free(desc); - desc = NULL; - } + OPENSSL_free(desc); + desc = NULL; /* Move to the next command */ num = ENGINE_ctrl(e, ENGINE_CTRL_GET_NEXT_CMD_TYPE, num, NULL, NULL); } while (num > 0); @@ -265,10 +263,8 @@ static int util_verbose(ENGINE *e, int verbose, BIO *out, const char *indent) err: if (cmds) sk_OPENSSL_STRING_pop_free(cmds, identity); - if (name) - OPENSSL_free(name); - if (desc) - OPENSSL_free(desc); + OPENSSL_free(name); + OPENSSL_free(desc); return ret; } diff --git a/apps/gendsa.c b/apps/gendsa.c index 21988a0652..75bd802e66 100644 --- a/apps/gendsa.c +++ b/apps/gendsa.c @@ -182,8 +182,7 @@ int gendsa_main(int argc, char **argv) BIO_free(in); BIO_free_all(out); DSA_free(dsa); - if (passout) - OPENSSL_free(passout); + OPENSSL_free(passout); return (ret); } #else /* !OPENSSL_NO_DSA */ diff --git a/apps/genpkey.c b/apps/genpkey.c index ae68e7a442..de14bd3810 100644 --- a/apps/genpkey.c +++ b/apps/genpkey.c @@ -235,8 +235,7 @@ int genpkey_main(int argc, char **argv) EVP_PKEY_CTX_free(ctx); BIO_free_all(out); BIO_free(in); - if (pass) - OPENSSL_free(pass); + OPENSSL_free(pass); return ret; } diff --git a/apps/genrsa.c b/apps/genrsa.c index a3c00d871e..a5ab658f96 100644 --- a/apps/genrsa.c +++ b/apps/genrsa.c @@ -218,8 +218,7 @@ int genrsa_main(int argc, char **argv) BN_GENCB_free(cb); RSA_free(rsa); BIO_free_all(out); - if (passout) - OPENSSL_free(passout); + OPENSSL_free(passout); if (ret != 0) ERR_print_errors(bio_err); return (ret); diff --git a/apps/ocsp.c b/apps/ocsp.c index 20dc1ae4cc..d4ea019650 100644 --- a/apps/ocsp.c +++ b/apps/ocsp.c @@ -271,12 +271,9 @@ int ocsp_main(int argc, char **argv) req_timeout = atoi(opt_arg()); break; case OPT_URL: - if (thost) - OPENSSL_free(thost); - if (tport) - OPENSSL_free(tport); - if (tpath) - OPENSSL_free(tpath); + OPENSSL_free(thost); + OPENSSL_free(tport); + OPENSSL_free(tpath); if (!OCSP_parse_url(opt_arg(), &host, &port, &path, &use_ssl)) { BIO_printf(bio_err, "%s Error parsing URL\n", prog); goto end; @@ -753,13 +750,9 @@ int ocsp_main(int argc, char **argv) sk_X509_pop_free(sign_other, X509_free); sk_X509_pop_free(verify_other, X509_free); sk_CONF_VALUE_pop_free(headers, X509V3_conf_free); - - if (thost) - OPENSSL_free(thost); - if (tport) - OPENSSL_free(tport); - if (tpath) - OPENSSL_free(tpath); + OPENSSL_free(thost); + OPENSSL_free(tport); + OPENSSL_free(tpath); return (ret); } diff --git a/apps/openssl.c b/apps/openssl.c index f6013f70ac..c6b048a90d 100644 --- a/apps/openssl.c +++ b/apps/openssl.c @@ -509,18 +509,15 @@ int main(int argc, char *argv[]) } ret = 1; end: - if (copied_argv) - OPENSSL_free(copied_argv); - if (to_free) - OPENSSL_free(to_free); + OPENSSL_free(copied_argv); + OPENSSL_free(to_free); if (config != NULL) { NCONF_free(config); config = NULL; } if (prog != NULL) lh_FUNCTION_free(prog); - if (arg.argv != NULL) - OPENSSL_free(arg.argv); + OPENSSL_free(arg.argv); BIO_free(bio_in); BIO_free_all(bio_out); diff --git a/apps/passwd.c b/apps/passwd.c index c529792eed..8dd8542870 100644 --- a/apps/passwd.c +++ b/apps/passwd.c @@ -284,10 +284,8 @@ int passwd_main(int argc, char **argv) end: ERR_print_errors(bio_err); - if (salt_malloc) - OPENSSL_free(salt_malloc); - if (passwd_malloc) - OPENSSL_free(passwd_malloc); + OPENSSL_free(salt_malloc); + OPENSSL_free(passwd_malloc); BIO_free(in); return (ret); } diff --git a/apps/pkcs12.c b/apps/pkcs12.c index b4b37305bb..4c62392e0b 100644 --- a/apps/pkcs12.c +++ b/apps/pkcs12.c @@ -556,10 +556,8 @@ int pkcs12_main(int argc, char **argv) BIO_free_all(out); if (canames) sk_OPENSSL_STRING_free(canames); - if (passin) - OPENSSL_free(passin); - if (passout) - OPENSSL_free(passout); + OPENSSL_free(passin); + OPENSSL_free(passout); return (ret); } diff --git a/apps/pkcs8.c b/apps/pkcs8.c index 105c1cb61c..07ebf3b86f 100644 --- a/apps/pkcs8.c +++ b/apps/pkcs8.c @@ -343,10 +343,8 @@ int pkcs8_main(int argc, char **argv) EVP_PKEY_free(pkey); BIO_free_all(out); BIO_free(in); - if (passin) - OPENSSL_free(passin); - if (passout) - OPENSSL_free(passout); + OPENSSL_free(passin); + OPENSSL_free(passout); return ret; } diff --git a/apps/pkey.c b/apps/pkey.c index 716d6d01e8..f0930a74f0 100644 --- a/apps/pkey.c +++ b/apps/pkey.c @@ -208,10 +208,8 @@ int pkey_main(int argc, char **argv) EVP_PKEY_free(pkey); BIO_free_all(out); BIO_free(in); - if (passin) - OPENSSL_free(passin); - if (passout) - OPENSSL_free(passout); + OPENSSL_free(passin); + OPENSSL_free(passout); return ret; } diff --git a/apps/pkeyutl.c b/apps/pkeyutl.c index 3afe0eb033..87e49501ab 100644 --- a/apps/pkeyutl.c +++ b/apps/pkeyutl.c @@ -322,12 +322,9 @@ int pkeyutl_main(int argc, char **argv) EVP_PKEY_CTX_free(ctx); BIO_free(in); BIO_free_all(out); - if (buf_in) - OPENSSL_free(buf_in); - if (buf_out) - OPENSSL_free(buf_out); - if (sig) - OPENSSL_free(sig); + OPENSSL_free(buf_in); + OPENSSL_free(buf_out); + OPENSSL_free(sig); return ret; } @@ -413,10 +410,7 @@ static EVP_PKEY_CTX *init_ctx(int *pkeysize, } end: - - if (passin) - OPENSSL_free(passin); - + OPENSSL_free(passin); return ctx; } diff --git a/apps/req.c b/apps/req.c index 0502a64abf..4ff3b246fe 100644 --- a/apps/req.c +++ b/apps/req.c @@ -886,15 +886,12 @@ int req_main(int argc, char **argv) if (gen_eng) ENGINE_free(gen_eng); #endif - if (keyalgstr) - OPENSSL_free(keyalgstr); + OPENSSL_free(keyalgstr); X509_REQ_free(req); X509_free(x509ss); ASN1_INTEGER_free(serial); - if (passargin && passin) - OPENSSL_free(passin); - if (passargout && passout) - OPENSSL_free(passout); + OPENSSL_free(passin); + OPENSSL_free(passout); OBJ_cleanup(); return (ret); } diff --git a/apps/rsa.c b/apps/rsa.c index 0a8e198d8e..858699bc18 100644 --- a/apps/rsa.c +++ b/apps/rsa.c @@ -388,10 +388,8 @@ int rsa_main(int argc, char **argv) end: BIO_free_all(out); RSA_free(rsa); - if (passin) - OPENSSL_free(passin); - if (passout) - OPENSSL_free(passout); + OPENSSL_free(passin); + OPENSSL_free(passout); return (ret); } #else /* !OPENSSL_NO_RSA */ diff --git a/apps/rsautl.c b/apps/rsautl.c index f138293a18..0ef61050cb 100644 --- a/apps/rsautl.c +++ b/apps/rsautl.c @@ -315,12 +315,9 @@ int rsautl_main(int argc, char **argv) RSA_free(rsa); BIO_free(in); BIO_free_all(out); - if (rsa_in) - OPENSSL_free(rsa_in); - if (rsa_out) - OPENSSL_free(rsa_out); - if (passin) - OPENSSL_free(passin); + OPENSSL_free(rsa_in); + OPENSSL_free(rsa_out); + OPENSSL_free(passin); return ret; } diff --git a/apps/s_client.c b/apps/s_client.c index 8d8340d311..a24d2f3b9d 100644 --- a/apps/s_client.c +++ b/apps/s_client.c @@ -1985,24 +1985,18 @@ int s_client_main(int argc, char **argv) SSL_free(con); } #if !defined(OPENSSL_NO_TLSEXT) && !defined(OPENSSL_NO_NEXTPROTONEG) - if (next_proto.data) - OPENSSL_free(next_proto.data); + OPENSSL_free(next_proto.data); #endif SSL_CTX_free(ctx); X509_free(cert); sk_X509_CRL_pop_free(crls, X509_CRL_free); EVP_PKEY_free(key); sk_X509_pop_free(chain, X509_free); - if (pass) - OPENSSL_free(pass); + OPENSSL_free(pass); X509_VERIFY_PARAM_free(vpm); ssl_excert_free(exc); sk_OPENSSL_STRING_free(ssl_args); SSL_CONF_CTX_free(cctx); -#ifndef OPENSSL_NO_JPAKE - if (jpake_secret && psk_key) - OPENSSL_free(psk_key); -#endif OPENSSL_clear_free(cbuf, BUFSIZZ); OPENSSL_clear_free(sbuf, BUFSIZZ); OPENSSL_clear_free(mbuf, BUFSIZZ); diff --git a/apps/s_server.c b/apps/s_server.c index a616b64a11..5fb275d0d8 100644 --- a/apps/s_server.c +++ b/apps/s_server.c @@ -1956,10 +1956,6 @@ int s_server_main(int argc, char *argv[]) ssl_excert_free(exc); sk_OPENSSL_STRING_free(ssl_args); SSL_CONF_CTX_free(cctx); -#ifndef OPENSSL_NO_JPAKE - if (jpake_secret && psk_key) - OPENSSL_free(psk_key); -#endif BIO_free(bio_s_out); bio_s_out = NULL; BIO_free(bio_s_msg); @@ -2931,8 +2927,7 @@ static int www_body(char *hostname, int s, int stype, unsigned char *context) err: if (ret >= 0) BIO_printf(bio_s_out, "ACCEPT\n"); - if (buf != NULL) - OPENSSL_free(buf); + OPENSSL_free(buf); BIO_free_all(io); return (ret); } @@ -3065,8 +3060,7 @@ static int rev_body(char *hostname, int s, int stype, unsigned char *context) err: - if (buf != NULL) - OPENSSL_free(buf); + OPENSSL_free(buf); BIO_free_all(io); return (ret); } diff --git a/apps/s_socket.c b/apps/s_socket.c index caa5b61053..29240e8462 100644 --- a/apps/s_socket.c +++ b/apps/s_socket.c @@ -354,8 +354,7 @@ int do_server(int port, int type, int *ret, } else sock = accept_socket; i = (*cb) (name, sock, type, context); - if (name != NULL) - OPENSSL_free(name); + OPENSSL_free(name); if (type == SOCK_STREAM) SHUTDOWN2(sock); if (naccept != -1) diff --git a/apps/smime.c b/apps/smime.c index 0fda865565..8b8520b37c 100644 --- a/apps/smime.c +++ b/apps/smime.c @@ -664,8 +664,7 @@ int smime_main(int argc, char **argv) BIO_free(in); BIO_free(indata); BIO_free_all(out); - if (passin) - OPENSSL_free(passin); + OPENSSL_free(passin); return (ret); } diff --git a/apps/speed.c b/apps/speed.c index 08ab9c5fa6..a5bd2658b9 100644 --- a/apps/speed.c +++ b/apps/speed.c @@ -2529,8 +2529,6 @@ static void multiblock_speed(const EVP_CIPHER *evp_cipher) fprintf(stdout, "\n"); } - if (inp) - OPENSSL_free(inp); - if (out) - OPENSSL_free(out); + OPENSSL_free(inp); + OPENSSL_free(out); } diff --git a/apps/spkac.c b/apps/spkac.c index 7ceff9feca..abae0e14ac 100644 --- a/apps/spkac.c +++ b/apps/spkac.c @@ -240,7 +240,6 @@ int spkac_main(int argc, char **argv) BIO_free(in); BIO_free_all(out); EVP_PKEY_free(pkey); - if (passin) - OPENSSL_free(passin); + OPENSSL_free(passin); return (ret); } diff --git a/apps/srp.c b/apps/srp.c index b984c14c97..960ca822f7 100644 --- a/apps/srp.c +++ b/apps/srp.c @@ -384,10 +384,8 @@ int srp_main(int argc, char **argv) errorline, configfile); goto end; } - if (tofree) { - OPENSSL_free(tofree); - tofree = NULL; - } + OPENSSL_free(tofree); + tofree = NULL; /* Lets get the config section we are using */ if (section == NULL) { @@ -519,26 +517,16 @@ int srp_main(int argc, char **argv) row[DB_srpgN] = BUF_strdup(gNid); if (!row[DB_srpid] || !row[DB_srpgN] || !row[DB_srptype] - || !row[DB_srpverifier] || !row[DB_srpsalt] || (userinfo - && - (!(row - [DB_srpinfo] - = - BUF_strdup - (userinfo)))) + || !row[DB_srpverifier] || !row[DB_srpsalt] + || (userinfo && + (!(row [DB_srpinfo] = BUF_strdup (userinfo)))) || !update_index(db, row)) { - if (row[DB_srpid]) - OPENSSL_free(row[DB_srpid]); - if (row[DB_srpgN]) - OPENSSL_free(row[DB_srpgN]); - if (row[DB_srpinfo]) - OPENSSL_free(row[DB_srpinfo]); - if (row[DB_srptype]) - OPENSSL_free(row[DB_srptype]); - if (row[DB_srpverifier]) - OPENSSL_free(row[DB_srpverifier]); - if (row[DB_srpsalt]) - OPENSSL_free(row[DB_srpsalt]); + OPENSSL_free(row[DB_srpid]); + OPENSSL_free(row[DB_srpgN]); + OPENSSL_free(row[DB_srpinfo]); + OPENSSL_free(row[DB_srptype]); + OPENSSL_free(row[DB_srpverifier]); + OPENSSL_free(row[DB_srpsalt]); goto end; } doupdatedb = 1; @@ -676,8 +664,7 @@ int srp_main(int argc, char **argv) if (verbose) BIO_printf(bio_err, "SRP terminating with code %d.\n", ret); - if (tofree) - OPENSSL_free(tofree); + OPENSSL_free(tofree); if (ret) ERR_print_errors(bio_err); if (randfile) diff --git a/apps/x509.c b/apps/x509.c index 5418cce8cf..31ae38aeaa 100644 --- a/apps/x509.c +++ b/apps/x509.c @@ -955,8 +955,7 @@ int x509_main(int argc, char **argv) ASN1_INTEGER_free(sno); sk_ASN1_OBJECT_pop_free(trust, ASN1_OBJECT_free); sk_ASN1_OBJECT_pop_free(reject, ASN1_OBJECT_free); - if (passin) - OPENSSL_free(passin); + OPENSSL_free(passin); return (ret); } @@ -996,8 +995,7 @@ static ASN1_INTEGER *x509_load_serial(char *CAfile, char *serialfile, goto end; end: - if (buf) - OPENSSL_free(buf); + OPENSSL_free(buf); BN_free(serial); return bs; } |