gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r37797 - in gnunet/src: identity-provider namecache


From: gnunet
Subject: [GNUnet-SVN] r37797 - in gnunet/src: identity-provider namecache
Date: Fri, 26 Aug 2016 14:52:33 +0200

Author: grothoff
Date: 2016-08-26 14:52:33 +0200 (Fri, 26 Aug 2016)
New Revision: 37797

Modified:
   gnunet/src/identity-provider/gnunet-identity-token.c
   gnunet/src/namecache/plugin_namecache_flat.c
Log:
-fix use after free

Modified: gnunet/src/identity-provider/gnunet-identity-token.c
===================================================================
--- gnunet/src/identity-provider/gnunet-identity-token.c        2016-08-26 
12:49:15 UTC (rev 37796)
+++ gnunet/src/identity-provider/gnunet-identity-token.c        2016-08-26 
12:52:33 UTC (rev 37797)
@@ -105,42 +105,48 @@
   token = NULL;
 
   if (print_token)
-    printf ("Token:\nHeader:\t\t%s\nPayload:\t%s\n", header, payload);
+    printf ("Token:\nHeader:\t\t%s\nPayload:\t%s\n",
+            header,
+            payload);
   GNUNET_free (header);
+
+  payload_json = json_loads (payload, 0, &error);
   GNUNET_free (payload);
 
-  payload_json = json_loads (payload, 0, &error);
-  if ((NULL == payload_json) || !json_is_object (payload_json))
+  if ((NULL == payload_json) || (! json_is_object (payload_json)) )
   {
     GNUNET_free (val);
     return;
   }
   keystring_json =  json_object_get (payload_json, "iss");
-  if (!json_is_string (keystring_json))
+  if (! json_is_string (keystring_json))
   {
     GNUNET_free (val);
     return;
   }
   keystring = json_string_value (keystring_json);
-  if (GNUNET_OK != GNUNET_CRYPTO_ecdsa_public_key_from_string (keystring,
-                                                               strlen 
(keystring),
-                                                               &key))
+  if (GNUNET_OK !=
+      GNUNET_CRYPTO_ecdsa_public_key_from_string (keystring,
+                                                  strlen (keystring),
+                                                  &key))
   {
     GNUNET_free (val);
     return;
   }
   GNUNET_STRINGS_string_to_data (signature_b32,
-                                strlen (signature_b32),
-                                &sig,
-                                sizeof (struct GNUNET_CRYPTO_EcdsaSignature));
+                                 strlen (signature_b32),
+                                 &sig,
+                                 sizeof (struct GNUNET_CRYPTO_EcdsaSignature));
 
   if (print_token)
-    printf ("Signature:\t%s\n", keystring);
+    printf ("Signature:\t%s\n",
+            keystring);
 
-  if (GNUNET_OK != 
GNUNET_CRYPTO_ecdsa_verify(GNUNET_SIGNATURE_PURPOSE_GNUID_TOKEN,
-                                              purpose,
-                                              &sig,
-                                              &key))
+  if (GNUNET_OK !=
+      GNUNET_CRYPTO_ecdsa_verify(GNUNET_SIGNATURE_PURPOSE_GNUID_TOKEN,
+                                 purpose,
+                                 &sig,
+                                 &key))
     printf("Signature not OK!\n");
   else
     printf("Signature OK!\n");

Modified: gnunet/src/namecache/plugin_namecache_flat.c
===================================================================
--- gnunet/src/namecache/plugin_namecache_flat.c        2016-08-26 12:49:15 UTC 
(rev 37796)
+++ gnunet/src/namecache/plugin_namecache_flat.c        2016-08-26 12:52:33 UTC 
(rev 37797)
@@ -154,7 +154,8 @@
   buffer[size] = '\0';
 
   GNUNET_DISK_file_close (fh);
-  if (0 < size) {
+  if (0 < size)
+  {
     line = strtok (buffer, "\n");
     while (line != NULL) {
       query = strtok (line, ",");




reply via email to

[Prev in Thread] Current Thread [Next in Thread]