NULL pointer fix
[oweals/gnunet.git] / src / reclaim / json_reclaim.c
index 3ba4300bb65bda980432dcc22f58fc73fbd3a4ef..557caafe2dd5bdbb16abceaaffad45fbe9bca12c 100644 (file)
@@ -55,24 +55,37 @@ parse_attr (void *cls, json_t *root, struct GNUNET_JSON_Specification *spec)
 
   GNUNET_assert (NULL != root);
 
-  if (!json_is_object (root)) {
+  if (! json_is_object (root))
+  {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                 "Error json is not array nor object!\n");
     return GNUNET_SYSERR;
   }
   // interpret single attribute
-  unpack_state =
-    json_unpack (root, "{s:s, s?s, s:s, s:s!}", "name", &name_str, "id",
-                 &id_str, "type", &type_str, "value", &val_str);
+  unpack_state = json_unpack (root,
+                              "{s:s, s?s, s:s, s:s!}",
+                              "name",
+                              &name_str,
+                              "id",
+                              &id_str,
+                              "type",
+                              &type_str,
+                              "value",
+                              &val_str);
   if ((0 != unpack_state) || (NULL == name_str) || (NULL == val_str) ||
-      (NULL == type_str)) {
+      (NULL == type_str))
+  {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                 "Error json object has a wrong format!\n");
     return GNUNET_SYSERR;
   }
   type = GNUNET_RECLAIM_ATTRIBUTE_typename_to_number (type_str);
-  if (GNUNET_SYSERR == (GNUNET_RECLAIM_ATTRIBUTE_string_to_value (
-                                                                  type, val_str, (void **)&data, &data_size))) {
+  if (GNUNET_SYSERR ==
+      (GNUNET_RECLAIM_ATTRIBUTE_string_to_value (type,
+                                                 val_str,
+                                                 (void **) &data,
+                                                 &data_size)))
+  {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Attribute value invalid!\n");
     return GNUNET_SYSERR;
   }
@@ -80,10 +93,12 @@ parse_attr (void *cls, json_t *root, struct GNUNET_JSON_Specification *spec)
   if ((NULL == id_str) || (0 == strlen (id_str)))
     attr->id = 0;
   else
-    GNUNET_STRINGS_string_to_data (id_str, strlen (id_str), &attr->id,
+    GNUNET_STRINGS_string_to_data (id_str,
+                                   strlen (id_str),
+                                   &attr->id,
                                    sizeof (uint64_t));
 
-  *(struct GNUNET_RECLAIM_ATTRIBUTE_Claim **)spec->ptr = attr;
+  *(struct GNUNET_RECLAIM_ATTRIBUTE_Claim **) spec->ptr = attr;
   return GNUNET_OK;
 }
 
@@ -97,8 +112,9 @@ static void
 clean_attr (void *cls, struct GNUNET_JSON_Specification *spec)
 {
   struct GNUNET_RECLAIM_ATTRIBUTE_Claim **attr;
-  attr = (struct GNUNET_RECLAIM_ATTRIBUTE_Claim **)spec->ptr;
-  if (NULL != *attr) {
+  attr = (struct GNUNET_RECLAIM_ATTRIBUTE_Claim **) spec->ptr;
+  if (NULL != *attr)
+  {
     GNUNET_free (*attr);
     *attr = NULL;
   }
@@ -114,12 +130,12 @@ struct GNUNET_JSON_Specification
 GNUNET_RECLAIM_JSON_spec_claim (struct GNUNET_RECLAIM_ATTRIBUTE_Claim **attr)
 {
   struct GNUNET_JSON_Specification ret = {.parser = &parse_attr,
-    .cleaner = &clean_attr,
-    .cls = NULL,
-    .field = NULL,
-    .ptr = attr,
-    .ptr_size = 0,
-    .size_ptr = NULL};
+                                          .cleaner = &clean_attr,
+                                          .cls = NULL,
+                                          .field = NULL,
+                                          .ptr = attr,
+                                          .ptr_size = 0,
+                                          .size_ptr = NULL};
   *attr = NULL;
   return ret;
 }
@@ -142,44 +158,61 @@ parse_ticket (void *cls, json_t *root, struct GNUNET_JSON_Specification *spec)
 
   GNUNET_assert (NULL != root);
 
-  if (!json_is_object (root)) {
+  if (! json_is_object (root))
+  {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                 "Error json is not array nor object!\n");
     return GNUNET_SYSERR;
   }
   // interpret single ticket
-  unpack_state = json_unpack (root, "{s:s, s:s, s:s!}", "rnd", &rnd_str,
-                              "audience", &aud_str, "identity", &id_str);
-  if (0 != unpack_state) {
+  unpack_state = json_unpack (root,
+                              "{s:s, s:s, s:s!}",
+                              "rnd",
+                              &rnd_str,
+                              "audience",
+                              &aud_str,
+                              "issuer",
+                              &id_str);
+  if (0 != unpack_state)
+  {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Error json object has a wrong format!\n");
     return GNUNET_SYSERR;
   }
   ticket = GNUNET_new (struct GNUNET_RECLAIM_Ticket);
-  if (GNUNET_OK != GNUNET_STRINGS_string_to_data (rnd_str, strlen (rnd_str),
+  if (GNUNET_OK != GNUNET_STRINGS_string_to_data (rnd_str,
+                                                  strlen (rnd_str),
                                                   &ticket->rnd,
-                                                  sizeof (uint64_t))) {
+                                                  sizeof (uint64_t)))
+  {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Rnd invalid\n");
     GNUNET_free (ticket);
     return GNUNET_SYSERR;
   }
-  GNUNET_STRINGS_string_to_data (id_str, strlen (id_str), &ticket->identity,
-                                 sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey));
+  if (GNUNET_OK !=
+      GNUNET_STRINGS_string_to_data (id_str,
+                                     strlen (id_str),
+                                     &ticket->identity,
+                                     sizeof (
+                                       struct GNUNET_CRYPTO_EcdsaPublicKey)))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Identity invalid\n");
     GNUNET_free (ticket);
     return GNUNET_SYSERR;
   }
 
-  GNUNET_STRINGS_string_to_data (aud_str, strlen (aud_str), &ticket->audience,
-                                 sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey));
+  if (GNUNET_OK !=
+      GNUNET_STRINGS_string_to_data (aud_str,
+                                 strlen (aud_str),
+                                 &ticket->audience,
+                                 sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey)))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Audience invalid\n");
     GNUNET_free (ticket);
     return GNUNET_SYSERR;
   }
 
-  *(struct GNUNET_RECLAIM_Ticket **)spec->ptr = ticket;
+  *(struct GNUNET_RECLAIM_Ticket **) spec->ptr = ticket;
   return GNUNET_OK;
 }
 
@@ -193,8 +226,9 @@ static void
 clean_ticket (void *cls, struct GNUNET_JSON_Specification *spec)
 {
   struct GNUNET_RECLAIM_Ticket **ticket;
-  ticket = (struct GNUNET_RECLAIM_Ticket **)spec->ptr;
-  if (NULL != *ticket) {
+  ticket = (struct GNUNET_RECLAIM_Ticket **) spec->ptr;
+  if (NULL != *ticket)
+  {
     GNUNET_free (*ticket);
     *ticket = NULL;
   }
@@ -210,12 +244,12 @@ struct GNUNET_JSON_Specification
 GNUNET_RECLAIM_JSON_spec_ticket (struct GNUNET_RECLAIM_Ticket **ticket)
 {
   struct GNUNET_JSON_Specification ret = {.parser = &parse_ticket,
-    .cleaner = &clean_ticket,
-    .cls = NULL,
-    .field = NULL,
-    .ptr = ticket,
-    .ptr_size = 0,
-    .size_ptr = NULL};
+                                          .cleaner = &clean_ticket,
+                                          .cls = NULL,
+                                          .field = NULL,
+                                          .ptr = ticket,
+                                          .ptr_size = 0,
+                                          .size_ptr = NULL};
   *ticket = NULL;
   return ret;
 }