- /* find end of URI */
- if (cdata[pos] == '\0')
- {
- /* URI is never empty, must be end of block,
- skip to next alignment */
- align =
- ((pos / DBLOCK_SIZE) + 1) * DBLOCK_SIZE;
- if (align == pos)
- {
- /* if we were already aligned, still skip a block! */
- align += DBLOCK_SIZE;
- }
- pos = align;
- if (pos >= size)
- {
- /* malformed - or partial download... */
- break;
- }
- }
- epos = pos;
- while ((epos < size) && (cdata[epos] != '\0'))
- epos++;
- if (epos >= size)
- return; /* malformed - or partial download */
-
- uri = GNUNET_FS_uri_parse (&cdata[pos], &emsg);
- pos = epos + 1;
- if (uri == NULL)
- {
- GNUNET_free (emsg);
- pos--; /* go back to '\0' to force going to next alignment */
- continue;
- }
- if (GNUNET_FS_uri_test_ksk (uri))
- {
- GNUNET_FS_uri_destroy (uri);
- GNUNET_break (0);
- return; /* illegal in directory! */
- }
+ /* URI is never empty, must be end of block,
+ * skip to next alignment */
+ align = ((pos / DBLOCK_SIZE) + 1) * DBLOCK_SIZE;
+ if (align == pos)
+ {
+ /* if we were already aligned, still skip a block! */
+ align += DBLOCK_SIZE;
+ }
+ pos = align;
+ if (pos >= size)
+ {
+ /* malformed - or partial download... */
+ break;
+ }
+ }
+ epos = pos;
+ while ((epos < size) && (cdata[epos] != '\0'))
+ epos++;
+ if (epos >= size)
+ return GNUNET_NO; /* malformed - or partial download */
+
+ uri = GNUNET_FS_uri_parse (&cdata[pos], &emsg);
+ pos = epos + 1;
+ if (uri == NULL)
+ {
+ GNUNET_free (emsg);
+ pos--; /* go back to '\0' to force going to next alignment */
+ continue;
+ }
+ if (GNUNET_FS_uri_test_ksk (uri))
+ {
+ GNUNET_FS_uri_destroy (uri);
+ GNUNET_break (0);
+ return GNUNET_NO; /* illegal in directory! */
+ }