diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2018-08-13 20:22:48 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2018-08-13 21:50:32 +0200 |
commit | 826f41e582f1c1a7f5e3dd30ae03b2fa23a2ef4f (patch) | |
tree | 5fb561ad4453eef721eb83040df96145accc9d2e | |
parent | c7336c3fee7e0ae6c6d4ef5dbfbdcebc920b9a0b (diff) | |
download | gnutls-826f41e582f1c1a7f5e3dd30ae03b2fa23a2ef4f.tar.gz |
tools: check output of called functions
Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-rw-r--r-- | src/benchmark-tls.c | 6 | ||||
-rw-r--r-- | src/certtool-common.c | 14 | ||||
-rw-r--r-- | src/certtool.c | 18 | ||||
-rw-r--r-- | src/common.c | 5 | ||||
-rw-r--r-- | src/danetool.c | 8 | ||||
-rw-r--r-- | src/pkcs11.c | 21 |
6 files changed, 58 insertions, 14 deletions
diff --git a/src/benchmark-tls.c b/src/benchmark-tls.c index 285010ae1f..b0004cf1af 100644 --- a/src/benchmark-tls.c +++ b/src/benchmark-tls.c @@ -301,7 +301,11 @@ static void test_ciphersuite(const char *cipher_prio, int size) gnutls_protocol_get_version(server))); fflush(stdout); - gnutls_rnd(GNUTLS_RND_NONCE, buffer, sizeof(buffer)); + ret = gnutls_rnd(GNUTLS_RND_NONCE, buffer, sizeof(buffer)); + if (ret < 0) { + fprintf(stderr, "Error in %s\n", str); + exit(1); + } start_benchmark(&st); diff --git a/src/certtool-common.c b/src/certtool-common.c index d6f668b61f..e44ed5d5aa 100644 --- a/src/certtool-common.c +++ b/src/certtool-common.c @@ -809,14 +809,20 @@ static void print_head(FILE * out, const char *txt, unsigned int size, { unsigned i; char *p, *ntxt; + int ret; if (cprint != 0) { if (size > 0) - asprintf(&ntxt, "const unsigned char %s[%u] =", - txt, size); + ret = asprintf(&ntxt, "const unsigned char %s[%u] =", + txt, size); else - asprintf(&ntxt, "const unsigned char %s[] =\n", - txt); + ret = asprintf(&ntxt, "const unsigned char %s[] =\n", + txt); + + if (ret == -1) { + fprintf(stderr, "memory error\n"); + app_exit(1); + } p = strstr(ntxt, "char"); p += 5; diff --git a/src/certtool.c b/src/certtool.c index 382765e78a..908cff3722 100644 --- a/src/certtool.c +++ b/src/certtool.c @@ -884,7 +884,11 @@ static gnutls_digest_algorithm_t get_dig(gnutls_x509_crt_t crt, common_info_st * gnutls_pubkey_t pubkey; int result; - gnutls_pubkey_init(&pubkey); + result = gnutls_pubkey_init(&pubkey); + if (result < 0) { + fprintf(stderr, "memory error\n"); + app_exit(1); + } result = gnutls_pubkey_import_x509(pubkey, crt, 0); if (result < 0) { @@ -1682,7 +1686,11 @@ void privkey_info(common_info_st * cinfo) size = fread(lbuffer, 1, lbuffer_size - 1, infile); lbuffer[size] = 0; - gnutls_x509_privkey_init(&key); + ret = gnutls_x509_privkey_init(&key); + if (ret < 0) { + fprintf(stderr, "privkey_init: %s", gnutls_strerror(ret)); + app_exit(1); + } pem.data = lbuffer; pem.size = size; @@ -1736,7 +1744,11 @@ static void privkey_to_rsa(common_info_st * cinfo) size = fread(lbuffer, 1, lbuffer_size - 1, infile); lbuffer[size] = 0; - gnutls_x509_privkey_init(&key); + ret = gnutls_x509_privkey_init(&key); + if (ret < 0) { + fprintf(stderr, "privkey_init: %s", gnutls_strerror(ret)); + app_exit(1); + } pem.data = lbuffer; pem.size = size; diff --git a/src/common.c b/src/common.c index ee6c47e01c..a376fdacd8 100644 --- a/src/common.c +++ b/src/common.c @@ -1113,7 +1113,10 @@ token_callback(void *user, const char *label, const unsigned retry) } printf("Please insert token '%s' in slot and press enter\n", label); - fgets(buf, sizeof(buf), stdin); + if (fgets(buf, sizeof(buf), stdin) == NULL) { + fprintf(stderr, "error reading input\n"); + return -1; + } return 0; } diff --git a/src/danetool.c b/src/danetool.c index 3b4fe6046b..b04d92b70e 100644 --- a/src/danetool.c +++ b/src/danetool.c @@ -645,7 +645,13 @@ gnutls_session_t init_tls_session(const char *hostname) } gnutls_session_set_ptr(session, &priv); - gnutls_set_default_priority(session); + ret = gnutls_set_default_priority(session); + if (ret < 0) { + fprintf(stderr, "error[%d]: %s\n", __LINE__, + gnutls_strerror(ret)); + app_exit(1); + } + if (hostname && is_ip(hostname)==0) { gnutls_server_name_set(session, GNUTLS_NAME_DNS, hostname, strlen(hostname)); } diff --git a/src/pkcs11.c b/src/pkcs11.c index 30c188dda1..0dc2c563fe 100644 --- a/src/pkcs11.c +++ b/src/pkcs11.c @@ -127,7 +127,10 @@ const char *get_key_algo_type(gnutls_pkcs11_obj_type_t otype, const char *objurl switch (otype) { case GNUTLS_PKCS11_OBJ_X509_CRT: - gnutls_x509_crt_init(&crt); + ret = gnutls_x509_crt_init(&crt); + if (ret < 0) + goto fail; + ret = gnutls_x509_crt_import_url(crt, objurl, flags); if (ret < 0) goto fail; @@ -153,7 +156,10 @@ const char *get_key_algo_type(gnutls_pkcs11_obj_type_t otype, const char *objurl gnutls_x509_crt_deinit(crt); return p; case GNUTLS_PKCS11_OBJ_PUBKEY: - gnutls_pubkey_init(&pubkey); + ret = gnutls_pubkey_init(&pubkey); + if (ret < 0) + goto fail; + ret = gnutls_pubkey_import_url(pubkey, objurl, flags); if (ret < 0) goto fail; @@ -176,7 +182,10 @@ const char *get_key_algo_type(gnutls_pkcs11_obj_type_t otype, const char *objurl gnutls_pubkey_deinit(pubkey); return p; case GNUTLS_PKCS11_OBJ_PRIVKEY: - gnutls_privkey_init(&privkey); + ret = gnutls_privkey_init(&privkey); + if (ret < 0) + goto fail; + ret = gnutls_privkey_import_url(privkey, objurl, flags); if (ret < 0) goto fail; @@ -230,7 +239,11 @@ pkcs11_list(FILE * outfile, const char *url, int type, unsigned int flags, FIX(url, outfile, detailed, info); - gnutls_pkcs11_token_get_flags(url, &flags); + ret = gnutls_pkcs11_token_get_flags(url, &flags); + if (ret < 0) { + flags = 0; + } + if (flags & GNUTLS_PKCS11_TOKEN_TRUSTED) print_exts = 1; |