commit c2527bedd52f4c0bfd45d8a3f598a3660607ddc8
parent c8a07345235becde44717fb50b44d851eca8f400
Author: Christian Grothoff <christian@grothoff.org>
Date: Fri, 13 Dec 2024 15:32:15 +0100
check return values and other minor bugs
Diffstat:
8 files changed, 100 insertions(+), 58 deletions(-)
diff --git a/src/authorization/anastasis_authorization_plugin_post.c b/src/authorization/anastasis_authorization_plugin_post.c
@@ -463,8 +463,6 @@ post_challenge (struct ANASTASIS_AUTHORIZATION_State *as,
{
ssize_t ret;
- if (0 == left)
- break;
ret = GNUNET_DISK_file_write (pipe_stdin,
off,
left);
diff --git a/src/authorization/anastasis_authorization_plugin_sms.c b/src/authorization/anastasis_authorization_plugin_sms.c
@@ -386,8 +386,6 @@ sms_challenge (struct ANASTASIS_AUTHORIZATION_State *as,
{
ssize_t ret;
- if (0 == left)
- break;
ret = GNUNET_DISK_file_write (pipe_stdin,
off,
left);
diff --git a/src/reducer/anastasis_api_backup_redux.c b/src/reducer/anastasis_api_backup_redux.c
@@ -194,8 +194,11 @@ ANASTASIS_backup_start (const struct GNUNET_CONFIGURATION_Handle *cfg)
pid = fork ();
if (pid == 0)
{
- close (pipefd_stdout[0]);
- dup2 (pipefd_stdout[1], STDOUT_FILENO);
+ GNUNET_assert (0 ==
+ close (pipefd_stdout[0]));
+ GNUNET_assert (STDOUT_FILENO ==
+ dup2 (pipefd_stdout[1],
+ STDOUT_FILENO));
execlp (external_reducer,
external_reducer,
"-b",
@@ -203,9 +206,11 @@ ANASTASIS_backup_start (const struct GNUNET_CONFIGURATION_Handle *cfg)
GNUNET_assert (0);
}
- close (pipefd_stdout[1]);
+ GNUENT_assert (0 ==
+ close (pipefd_stdout[1]));
reducer_stdout = fdopen (pipefd_stdout[0],
"r");
+ GNUNET_assert (NULL != reducer_stdout);
{
json_error_t err;
diff --git a/src/reducer/anastasis_api_recovery_redux.c b/src/reducer/anastasis_api_recovery_redux.c
@@ -99,9 +99,11 @@ ANASTASIS_recovery_start (const struct GNUNET_CONFIGURATION_Handle *cfg)
pid = fork ();
if (pid == 0)
{
- (void) close (pipefd_stdout[0]);
- (void) dup2 (pipefd_stdout[1],
- STDOUT_FILENO);
+ GNUNET_assert (0 ==
+ close (pipefd_stdout[0]));
+ GNUNET_assert (STDOUT_FILENO ==
+ dup2 (pipefd_stdout[1],
+ STDOUT_FILENO));
execlp (external_reducer,
external_reducer,
"-r",
@@ -109,7 +111,8 @@ ANASTASIS_recovery_start (const struct GNUNET_CONFIGURATION_Handle *cfg)
GNUNET_assert (0);
}
- close (pipefd_stdout[1]);
+ GNUNET_assert (0 ==
+ close (pipefd_stdout[1]));
reducer_stdout = fdopen (pipefd_stdout[0],
"r");
{
@@ -2661,9 +2664,10 @@ ANASTASIS_REDUX_recovery_challenge_begin_ (json_t *state,
"'identity_attributes' missing");
return NULL;
}
- json_object_set (state,
- "identity_attributes",
- attributes);
+ GNUNET_assert (0 ==
+ json_object_set (state,
+ "identity_attributes",
+ attributes));
set_state (state,
ANASTASIS_RECOVERY_STATE_SECRET_SELECTING);
cb (cb_cls,
diff --git a/src/reducer/anastasis_api_redux.c b/src/reducer/anastasis_api_redux.c
@@ -1662,10 +1662,11 @@ cleanup_external_reducer (void *cls)
GNUNET_assert (GNUNET_SYSERR != pwret);
if (GNUNET_NO == pwret)
{
- GNUNET_OS_process_kill (red_cls->reducer_process,
- SIGTERM);
- GNUNET_assert (GNUNET_SYSERR != GNUNET_OS_process_wait (
- red_cls->reducer_process));
+ GNUNET_assert (0 ==
+ GNUNET_OS_process_kill (red_cls->reducer_process,
+ SIGTERM));
+ GNUNET_assert (GNUNET_SYSERR !=
+ GNUNET_OS_process_wait (red_cls->reducer_process));
}
GNUNET_OS_process_destroy (red_cls->reducer_process);
diff --git a/src/testing/testing_api_helpers.c b/src/testing/testing_api_helpers.c
@@ -64,8 +64,9 @@ ANASTASIS_TESTING_run_anastasis (const char *config_filename,
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Failed to launch `anastasis-httpd' (or `wget')\n");
- GNUNET_OS_process_kill (anastasis_proc,
- SIGTERM);
+ GNUNET_break (0 ==
+ GNUNET_OS_process_kill (anastasis_proc,
+ SIGTERM));
GNUNET_OS_process_wait (anastasis_proc);
GNUNET_OS_process_destroy (anastasis_proc);
ANASTASIS_FAIL ();
diff --git a/src/util/anastasis-crypto-tvg.c b/src/util/anastasis-crypto-tvg.c
@@ -74,9 +74,10 @@ vec_for (json_t *vecs, const char *vecname)
{
json_t *t = json_object ();
- json_object_set_new (t,
- "operation",
- json_string (vecname));
+ GNUNET_assert (0 ==
+ json_object_set_new (t,
+ "operation",
+ json_string (vecname)));
json_array_append_new (vecs, t);
return t;
}
@@ -100,12 +101,16 @@ d2j (json_t *vec,
char *buf;
json_t *json;
- buf = GNUNET_STRINGS_data_to_string_alloc (data, size);
+ buf = GNUNET_STRINGS_data_to_string_alloc (data,
+ size);
json = json_string (buf);
GNUNET_free (buf);
GNUNET_break (NULL != json);
- json_object_set_new (vec, label, json);
+ GNUNET_assert (0 ==
+ json_object_set_new (vec,
+ label,
+ json));
}
@@ -117,7 +122,8 @@ d2j_append (json_t *arr,
char *buf;
json_t *json;
- buf = GNUNET_STRINGS_data_to_string_alloc (data, size);
+ buf = GNUNET_STRINGS_data_to_string_alloc (data,
+ size);
json = json_string (buf);
GNUNET_free (buf);
GNUNET_break (NULL != json);
@@ -312,17 +318,21 @@ output_vectors ()
json_t *vecfile = json_object ();
json_t *vecs = json_array ();
- json_object_set_new (vecfile,
- "encoding",
- json_string ("base32crockford"));
- json_object_set_new (vecfile,
- "producer",
- json_string (
- "GNU Anastasis (C implementation) " PACKAGE_VERSION " "
- VCS_VERSION));
- json_object_set_new (vecfile,
- "vectors",
- vecs);
+ GNUNET_assert (0 ==
+ json_object_set_new (vecfile,
+ "encoding",
+ json_string ("base32crockford")));
+ GNUNET_assert (0 ==
+ json_object_set_new (vecfile,
+ "producer",
+ json_string (
+ "GNU Anastasis (C implementation) "
+ PACKAGE_VERSION " "
+ VCS_VERSION)));
+ GNUNET_assert (0 ==
+ json_object_set_new (vecfile,
+ "vectors",
+ vecs));
{
json_t *vec = vec_for (vecs, "hash");
@@ -350,9 +360,16 @@ output_vectors ()
ANASTASIS_CRYPTO_user_identifier_derive (id_data,
&provider_salt,
&id);
- json_object_set_new (vec, "input_id_data", id_data);
- d2j_auto (vec, "input_provider_salt", &provider_salt);
- d2j_auto (vec, "output_id", &id);
+ GNUNET_assert (0 ==
+ json_object_set_new (vec,
+ "input_id_data",
+ id_data));
+ d2j_auto (vec,
+ "input_provider_salt",
+ &provider_salt);
+ d2j_auto (vec,
+ "output_id",
+ &id);
}
{
@@ -380,8 +397,14 @@ output_vectors ()
random_auto (&uuid);
random_auto (&salt);
- ANASTASIS_CRYPTO_secure_answer_hash (answer, &uuid, &salt, &result);
- json_object_set_new (vec, "input_answer", json_string (answer));
+ ANASTASIS_CRYPTO_secure_answer_hash (answer,
+ &uuid,
+ &salt,
+ &result);
+ GNUNET_assert (0 ==
+ json_object_set_new (vec,
+ "input_answer",
+ json_string (answer)));
d2j_auto (vec, "input_uuid", &uuid);
d2j_auto (vec, "input_salt", &salt);
d2j_auto (vec, "output_hash", &result);
@@ -424,8 +447,13 @@ output_vectors ()
&enc_key_share);
d2j_auto (vec, "input_key_share", &key_share);
d2j_auto (vec, "input_user_id", &id);
- json_object_set_new (vec, "input_xsalt", json_string (xsalt));
- d2j_auto (vec, "output_enc_key_share", &enc_key_share);
+ GNUNET_assert (0 ==
+ json_object_set_new (vec,
+ "input_xsalt",
+ json_string (xsalt)));
+ d2j_auto (vec,
+ "output_enc_key_share",
+ &enc_key_share);
}
{
@@ -445,7 +473,10 @@ output_vectors ()
&enc_key_share);
d2j_auto (vec, "input_key_share", &key_share);
d2j_auto (vec, "input_user_id", &id);
- json_object_set_new (vec, "input_xsalt", json_null ());
+ GNUNET_assert (0 ==
+ json_object_set_new (vec,
+ "input_xsalt",
+ json_null ()));
d2j_auto (vec, "output_enc_key_share", &enc_key_share);
}
@@ -496,7 +527,10 @@ output_vectors ()
d2j_append_auto (key_shares_json, &key_shares[0]);
d2j_append_auto (key_shares_json, &key_shares[1]);
- json_object_set_new (vec, "input_key_shares", key_shares_json);
+ GNUNET_assert (0 ==
+ json_object_set_new (vec,
+ "input_key_shares",
+ key_shares_json));
d2j_auto (vec, "input_salt", &salt);
d2j_auto (vec, "output_policy_key", &policy_key);
}
diff --git a/src/util/anastasis_crypto.c b/src/util/anastasis_crypto.c
@@ -438,18 +438,19 @@ ANASTASIS_CRYPTO_policy_key_derive (
const struct ANASTASIS_CRYPTO_MasterSaltP *salt,
struct ANASTASIS_CRYPTO_PolicyKeyP *policy_key)
{
- GNUNET_CRYPTO_kdf (policy_key,
- sizeof (*policy_key),
- /* salt / XTS */
- salt,
- sizeof (*salt),
- /* ikm */
- key_shares,
- keyshare_length * sizeof (*key_shares),
- /* info chunks */
- "anastasis-policy-key-derive",
- strlen ("anastasis-policy-key-derive"),
- NULL, 0);
+ GNUNET_assert (GNUNET_YES ==
+ GNUNET_CRYPTO_kdf (policy_key,
+ sizeof (*policy_key),
+ /* salt / XTS */
+ salt,
+ sizeof (*salt),
+ /* ikm */
+ key_shares,
+ keyshare_length * sizeof (*key_shares),
+ /* info chunks */
+ "anastasis-policy-key-derive",
+ strlen ("anastasis-policy-key-derive"),
+ NULL, 0));
}