[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnunet] branch master updated: better error handling
From: |
gnunet |
Subject: |
[gnunet] branch master updated: better error handling |
Date: |
Mon, 16 Mar 2020 19:42:57 +0100 |
This is an automated email from the git hooks/post-receive script.
grothoff pushed a commit to branch master
in repository gnunet.
The following commit(s) were added to refs/heads/master by this push:
new 39c6d488d better error handling
39c6d488d is described below
commit 39c6d488d4b8b8061ac33a902064cd5b2167b60c
Author: Christian Grothoff <address@hidden>
AuthorDate: Mon Mar 16 19:38:42 2020 +0100
better error handling
---
src/json/json_generator.c | 114 ++++++++++++++++++++++++++++++++++++++--------
1 file changed, 94 insertions(+), 20 deletions(-)
diff --git a/src/json/json_generator.c b/src/json/json_generator.c
index 89fd53265..9b2fb7fbb 100644
--- a/src/json/json_generator.c
+++ b/src/json/json_generator.c
@@ -45,6 +45,7 @@ GNUNET_JSON_from_data (const void *data,
buf = GNUNET_STRINGS_data_to_string_alloc (data, size);
json = json_string (buf);
GNUNET_free (buf);
+ GNUNET_break (NULL != json);
return json;
}
@@ -64,17 +65,34 @@ GNUNET_JSON_from_time_abs (struct GNUNET_TIME_Absolute
stamp)
GNUNET_TIME_round_abs (&stamp));
j = json_object ();
-
+ if (NULL == j)
+ {
+ GNUNET_break (0);
+ return NULL;
+ }
if (stamp.abs_value_us == GNUNET_TIME_UNIT_FOREVER_ABS.abs_value_us)
{
- json_object_set_new (j,
- "t_ms",
- json_string ("never"));
+ if (0 !=
+ json_object_set_new (j,
+ "t_ms",
+ json_string ("never")))
+ {
+ GNUNET_break (0);
+ json_decref (j);
+ return NULL;
+ }
return j;
}
- json_object_set_new (j,
- "t_ms",
- json_integer ((json_int_t) (stamp.abs_value_us /
1000LL)));
+ if (0 !=
+ json_object_set_new (j,
+ "t_ms",
+ json_integer ((json_int_t) (stamp.abs_value_us
+ / 1000LL))))
+ {
+ GNUNET_break (0);
+ json_decref (j);
+ return NULL;
+ }
return j;
}
@@ -107,17 +125,34 @@ GNUNET_JSON_from_time_rel (struct GNUNET_TIME_Relative
stamp)
GNUNET_TIME_round_rel (&stamp));
j = json_object ();
-
+ if (NULL == j)
+ {
+ GNUNET_break (0);
+ return NULL;
+ }
if (stamp.rel_value_us == GNUNET_TIME_UNIT_FOREVER_REL.rel_value_us)
{
- json_object_set_new (j,
- "d_ms",
- json_string ("forever"));
+ if (0 !=
+ json_object_set_new (j,
+ "d_ms",
+ json_string ("forever")))
+ {
+ GNUNET_break (0);
+ json_decref (j);
+ return NULL;
+ }
return j;
}
- json_object_set_new (j,
- "d_ms",
- json_integer ((json_int_t) (stamp.rel_value_us /
1000LL)));
+ if (0 !=
+ json_object_set_new (j,
+ "d_ms",
+ json_integer ((json_int_t) (stamp.rel_value_us
+ / 1000LL))))
+ {
+ GNUNET_break (0);
+ json_decref (j);
+ return NULL;
+ }
return j;
}
@@ -187,10 +222,27 @@ GNUNET_JSON_from_gnsrecord (const char*rname,
json_t *records;
data = json_object ();
- json_object_set_new (data,
- "record_name",
- json_string (rname));
+ if (NULL == data)
+ {
+ GNUNET_break (0);
+ return NULL;
+ }
+ if (0 !=
+ json_object_set_new (data,
+ "record_name",
+ json_string (rname)))
+ {
+ GNUNET_break (0);
+ json_decref (data);
+ return NULL;
+ }
records = json_array ();
+ if (NULL == records)
+ {
+ GNUNET_break (0);
+ json_decref (data);
+ return NULL;
+ }
for (int i = 0; i < rd_count; i++)
{
value_str = GNUNET_GNSRECORD_value_to_string (rd[i].record_type,
@@ -212,11 +264,33 @@ GNUNET_JSON_from_gnsrecord (const char*rname,
expiration_time_str,
"flag",
rd[i].flags);
- GNUNET_assert (NULL != record);
GNUNET_free (value_str);
- json_array_append_new (records, record);
+ if (NULL == record)
+ {
+ GNUNET_break (0);
+ json_decref (records);
+ json_decref (data);
+ return NULL;
+ }
+ if (0 !=
+ json_array_append_new (records,
+ record))
+ {
+ GNUNET_break (0);
+ json_decref (records);
+ json_decref (data);
+ return NULL;
+ }
+ }
+ if (0 !=
+ json_object_set_new (data,
+ "data",
+ records))
+ {
+ GNUNET_break (0);
+ json_decref (data);
+ return NULL;
}
- json_object_set_new (data, "data", records);
return data;
}
--
To stop receiving notification emails like this one, please contact
address@hidden.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnunet] branch master updated: better error handling,
gnunet <=