diff options
author | Schanzenbach, Martin <mschanzenbach@posteo.de> | 2019-04-14 18:45:38 +0200 |
---|---|---|
committer | Schanzenbach, Martin <mschanzenbach@posteo.de> | 2019-04-14 18:45:38 +0200 |
commit | 77494b746ad3baa510ddf751c046b0fa802bfd5f (patch) | |
tree | db49f0f92d2d82caf00defdc872eb190bb3e4076 /src/reclaim/json_reclaim.c | |
parent | d969447fbb31a42fd0dda4d15356fb2692a0fc1a (diff) | |
download | gnunet-77494b746ad3baa510ddf751c046b0fa802bfd5f.tar.gz gnunet-77494b746ad3baa510ddf751c046b0fa802bfd5f.zip |
RECLAIM/REST: Fix attribute update/rest store
Diffstat (limited to 'src/reclaim/json_reclaim.c')
-rw-r--r-- | src/reclaim/json_reclaim.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/reclaim/json_reclaim.c b/src/reclaim/json_reclaim.c index 79110490a..9c186b64a 100644 --- a/src/reclaim/json_reclaim.c +++ b/src/reclaim/json_reclaim.c | |||
@@ -44,10 +44,10 @@ static int | |||
44 | parse_attr (void *cls, json_t *root, struct GNUNET_JSON_Specification *spec) | 44 | parse_attr (void *cls, json_t *root, struct GNUNET_JSON_Specification *spec) |
45 | { | 45 | { |
46 | struct GNUNET_RECLAIM_ATTRIBUTE_Claim *attr; | 46 | struct GNUNET_RECLAIM_ATTRIBUTE_Claim *attr; |
47 | const char *name_str; | 47 | const char *name_str = NULL; |
48 | const char *val_str; | 48 | const char *val_str = NULL; |
49 | const char *type_str; | 49 | const char *type_str = NULL; |
50 | const char *id_str; | 50 | const char *id_str = NULL; |
51 | char *data; | 51 | char *data; |
52 | int unpack_state; | 52 | int unpack_state; |
53 | uint32_t type; | 53 | uint32_t type; |
@@ -62,10 +62,11 @@ parse_attr (void *cls, json_t *root, struct GNUNET_JSON_Specification *spec) | |||
62 | } | 62 | } |
63 | // interpret single attribute | 63 | // interpret single attribute |
64 | unpack_state = | 64 | unpack_state = |
65 | json_unpack (root, "{s:s, s:s, s:s, s:s!}", "name", &name_str, "id", | 65 | json_unpack (root, "{s:s, s?s, s:s, s:s!}", "name", &name_str, "id", |
66 | &id_str, "type", &type_str, "value", &val_str); | 66 | &id_str, "type", &type_str, "value", &val_str); |
67 | if (0 != unpack_state) { | 67 | if ((0 != unpack_state) || (NULL == name_str) || (NULL == val_str) || |
68 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 68 | (NULL == type_str)) { |
69 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, | ||
69 | "Error json object has a wrong format!\n"); | 70 | "Error json object has a wrong format!\n"); |
70 | return GNUNET_SYSERR; | 71 | return GNUNET_SYSERR; |
71 | } | 72 | } |
@@ -76,7 +77,7 @@ parse_attr (void *cls, json_t *root, struct GNUNET_JSON_Specification *spec) | |||
76 | return GNUNET_SYSERR; | 77 | return GNUNET_SYSERR; |
77 | } | 78 | } |
78 | attr = GNUNET_RECLAIM_ATTRIBUTE_claim_new (name_str, type, data, data_size); | 79 | attr = GNUNET_RECLAIM_ATTRIBUTE_claim_new (name_str, type, data, data_size); |
79 | if (0 == strlen (id_str)) | 80 | if ((NULL == id_str) || (0 == strlen (id_str))) |
80 | attr->id = 0; | 81 | attr->id = 0; |
81 | else | 82 | else |
82 | GNUNET_STRINGS_string_to_data (id_str, strlen (id_str), &attr->id, | 83 | GNUNET_STRINGS_string_to_data (id_str, strlen (id_str), &attr->id, |