size_t n;
int r;
- assert(ret);
+ assert_return(ret, -EINVAL);
n = strv_length(l);
if (n == 0) {
}
_public_ void sd_json_variant_sensitive(sd_json_variant *v) {
- assert(v);
+ if (!v)
+ return;
/* Marks a variant as "sensitive", so that it is erased from memory when it is destroyed. This is a
* one-way operation: as soon as it is marked this way it remains marked this way until it's
size_t n = 0, k = 0;
int r;
- assert(v);
+ assert_return(v, -EINVAL);
if (sd_json_variant_is_blank_object(*v))
return 0;
size_t k = 0;
int r;
- assert(v);
- assert(field);
+ assert_return(v, -EINVAL);
+ assert_return(field, -EINVAL);
if (sd_json_variant_is_blank_object(*v)) {
array = new(sd_json_variant*, 2);
bool blank;
int r;
- assert(v);
- assert(element);
+ assert_return(v, -EINVAL);
+ assert_return(element, -EINVAL);
if (!*v || sd_json_variant_is_null(*v))
blank = true;
}
_public_ int sd_json_variant_append_array_nodup(sd_json_variant **v, sd_json_variant *element) {
- assert(v);
+ assert_return(v, -EINVAL);
if (sd_json_variant_find(*v, element))
return 0;
bool sensitive;
int r;
- assert(ret);
+ assert_return(ret, -EINVAL);
if (!v || sd_json_variant_is_null(v)) {
l = new0(char*, 1);
_public_ int sd_json_dispatch_stdbool(const char *name, sd_json_variant *variant, sd_json_dispatch_flags_t flags, void *userdata) {
bool *b = ASSERT_PTR(userdata);
- assert(variant);
+ assert_return(variant, -EINVAL);
if (!sd_json_variant_is_boolean(variant))
return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "JSON field '%s' is not a boolean.", strna(name));
_public_ int sd_json_dispatch_intbool(const char *name, sd_json_variant *variant, sd_json_dispatch_flags_t flags, void *userdata) {
int *b = ASSERT_PTR(userdata);
- assert(variant);
+ assert_return(variant, -EINVAL);
if (!sd_json_variant_is_boolean(variant))
return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "JSON field '%s' is not a boolean.", strna(name));
_public_ int sd_json_dispatch_tristate(const char *name, sd_json_variant *variant, sd_json_dispatch_flags_t flags, void *userdata) {
int *b = ASSERT_PTR(userdata);
- assert(variant);
+ assert_return(variant, -EINVAL);
if (sd_json_variant_is_null(variant)) {
*b = -1;
_public_ int sd_json_dispatch_int64(const char *name, sd_json_variant *variant, sd_json_dispatch_flags_t flags, void *userdata) {
int64_t *i = ASSERT_PTR(userdata);
- assert(variant);
+ assert_return(variant, -EINVAL);
/* Also accept numbers formatted as string, to increase compatibility with less capable JSON
* implementations that cannot do 64bit integers. */
_public_ int sd_json_dispatch_uint64(const char *name, sd_json_variant *variant, sd_json_dispatch_flags_t flags, void *userdata) {
uint64_t *u = ASSERT_PTR(userdata);
- assert(variant);
+ assert_return(variant, -EINVAL);
/* Since 64bit values (in particular unsigned ones) in JSON are problematic, let's also accept them
* formatted as strings. If this is not desired make sure to set the .type field in
uint64_t u64;
int r;
- assert(variant);
+ assert_return(variant, -EINVAL);
r = sd_json_dispatch_uint64(name, variant, flags, &u64);
if (r < 0)
int64_t i64;
int r;
- assert(variant);
+ assert_return(variant, -EINVAL);
r = sd_json_dispatch_int64(name, variant, flags, &i64);
if (r < 0)
int64_t i64;
int r;
- assert(variant);
+ assert_return(variant, -EINVAL);
r = sd_json_dispatch_int64(name, variant, flags, &i64);
if (r < 0)
uint64_t u64;
int r;
- assert(variant);
+ assert_return(variant, -EINVAL);
r = sd_json_dispatch_uint64(name, variant, flags, &u64);
if (r < 0)
int64_t i64;
int r;
- assert(variant);
+ assert_return(variant, -EINVAL);
r = sd_json_dispatch_int64(name, variant, flags, &i64);
if (r < 0)
uint64_t u64;
int r;
- assert(variant);
+ assert_return(variant, -EINVAL);
r = sd_json_dispatch_uint64(name, variant, flags, &u64);
if (r < 0)
_public_ int sd_json_dispatch_double(const char *name, sd_json_variant *variant, sd_json_dispatch_flags_t flags, void *userdata) {
double *d = ASSERT_PTR(userdata);
+ assert_return(variant, -EINVAL);
+
/* Note, this will take care of parsing NaN, -Infinity, Infinity for us */
if (sd_json_variant_is_string(variant) && safe_atod(sd_json_variant_string(variant), d) >= 0)
return 0;
char **s = ASSERT_PTR(userdata);
int r;
- assert(variant);
+ assert_return(variant, -EINVAL);
if (sd_json_variant_is_null(variant)) {
*s = mfree(*s);
_public_ int sd_json_dispatch_const_string(const char *name, sd_json_variant *variant, sd_json_dispatch_flags_t flags, void *userdata) {
const char **s = ASSERT_PTR(userdata);
- assert(variant);
+ assert_return(variant, -EINVAL);
if (sd_json_variant_is_null(variant)) {
*s = NULL;
sd_json_variant *e;
int r;
- assert(variant);
+ assert_return(variant, -EINVAL);
if (sd_json_variant_is_null(variant)) {
*s = strv_free(*s);
_public_ int sd_json_dispatch_variant(const char *name, sd_json_variant *variant, sd_json_dispatch_flags_t flags, void *userdata) {
sd_json_variant **p = ASSERT_PTR(userdata);
- assert(variant);
+
+ assert_return(variant, -EINVAL);
/* Takes a reference */
JSON_VARIANT_REPLACE(*p, sd_json_variant_ref(variant));
_public_ int sd_json_dispatch_variant_noref(const char *name, sd_json_variant *variant, sd_json_dispatch_flags_t flags, void *userdata) {
sd_json_variant **p = ASSERT_PTR(userdata);
- assert(variant);
+
+ assert_return(variant, -EINVAL);
/* Doesn't take a reference */
*p = variant;
uid_t *uid = userdata;
uint64_t k;
+ assert_return(variant, -EINVAL);
+
assert_cc(sizeof(uid_t) == sizeof(uint32_t));
assert_cc(sizeof(gid_t) == sizeof(uint32_t));
sd_id128_t *uuid = userdata;
int r;
+ assert_return(variant, -EINVAL);
+
if (sd_json_variant_is_null(variant)) {
*uuid = SD_ID128_NULL;
return 0;
size_t m;
int r;
- assert(v);
+ assert_return(v, -EINVAL);
if (sd_json_variant_is_sorted(*v))
return 0;
size_t i, m;
int r;
- assert(v);
+ assert_return(v, -EINVAL);
if (sd_json_variant_is_normalized(*v))
return 0;