summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2018-08-13 20:22:48 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2018-08-13 21:50:32 +0200
commit826f41e582f1c1a7f5e3dd30ae03b2fa23a2ef4f (patch)
tree5fb561ad4453eef721eb83040df96145accc9d2e
parentc7336c3fee7e0ae6c6d4ef5dbfbdcebc920b9a0b (diff)
downloadgnutls-826f41e582f1c1a7f5e3dd30ae03b2fa23a2ef4f.tar.gz
tools: check output of called functions
Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-rw-r--r--src/benchmark-tls.c6
-rw-r--r--src/certtool-common.c14
-rw-r--r--src/certtool.c18
-rw-r--r--src/common.c5
-rw-r--r--src/danetool.c8
-rw-r--r--src/pkcs11.c21
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;