-not all uris are ksks
authorChristian Grothoff <christian@grothoff.org>
Mon, 19 Dec 2011 21:00:48 +0000 (21:00 +0000)
committerChristian Grothoff <christian@grothoff.org>
Mon, 19 Dec 2011 21:00:48 +0000 (21:00 +0000)
src/fs/fs_api.c

index 075bedc21f01e22542611f4edb42bf7ae4b36beb..29363873283e80209813555e496d5661eeedece3 100644 (file)
@@ -1793,10 +1793,15 @@ GNUNET_FS_search_result_sync_ (struct GNUNET_FS_SearchResult *sr)
       || (GNUNET_OK != GNUNET_BIO_write_int32 (wh, sr->mandatory_missing)) ||
       (GNUNET_OK != GNUNET_BIO_write_int32 (wh, sr->optional_support)) ||
       (GNUNET_OK != GNUNET_BIO_write_int32 (wh, sr->availability_success)) ||
-      (GNUNET_OK != GNUNET_BIO_write_int32 (wh, sr->availability_trials)) ||
-      (GNUNET_OK != GNUNET_BIO_write (wh, sr->keyword_bitmap,
-                                     (sr->uri == NULL) ? 0 : (sr->uri->data.ksk.keywordCount + 7) / 8)) )
-
+      (GNUNET_OK != GNUNET_BIO_write_int32 (wh, sr->availability_trials)) )
+  {
+    GNUNET_break (0);
+    goto cleanup;
+  }
+  if ( (sr->uri != NULL) &&
+       (sr->uri->type == ksk) &&
+       (GNUNET_OK != GNUNET_BIO_write (wh, sr->keyword_bitmap,
+                                      (sr->uri->data.ksk.keywordCount + 7) / 8)) )
   {
     GNUNET_break (0);
     goto cleanup;
@@ -2098,13 +2103,17 @@ deserialize_search_result (void *cls, const char *filename)
     GNUNET_break (0);
     goto cleanup;
   }
-  sr->keyword_bitmap = GNUNET_malloc ((sr->uri->data.ksk.keywordCount + 7) / 8); /* round up, count bits */
-  if (GNUNET_OK != GNUNET_BIO_read (rh, "keyword-bitmap",
-                                   sr->keyword_bitmap,
-                                   (sr->uri == NULL) ? 0 : (sr->uri->data.ksk.keywordCount + 7) / 8))
+  if ( (NULL != sr->uri) &&
+       (sr->uri->type == ksk) )
   {
-    GNUNET_break (0);
-    goto cleanup;
+    sr->keyword_bitmap = GNUNET_malloc ((sr->uri->data.ksk.keywordCount + 7) / 8); /* round up, count bits */
+    if (GNUNET_OK != GNUNET_BIO_read (rh, "keyword-bitmap",
+                                     sr->keyword_bitmap,
+                                     (sr->uri->data.ksk.keywordCount + 7) / 8))
+    {
+      GNUNET_break (0);
+      goto cleanup;
+    }
   }
   GNUNET_free (uris);
   if (download != NULL)