aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2010-06-27 13:13:07 +0000
committerChristian Grothoff <christian@grothoff.org>2010-06-27 13:13:07 +0000
commit269edcfc22cea65fda93c958ddc97033a292acf9 (patch)
tree67614450f1770cf058d8777285013c223e04be89
parent602c664c1e66ec128b524fe706c63776d1e9b404 (diff)
downloadgnunet-269edcfc22cea65fda93c958ddc97033a292acf9.tar.gz
gnunet-269edcfc22cea65fda93c958ddc97033a292acf9.zip
properly check for gnd files
-rw-r--r--src/fs/fs_directory.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/fs/fs_directory.c b/src/fs/fs_directory.c
index 03065958e..6698ad010 100644
--- a/src/fs/fs_directory.c
+++ b/src/fs/fs_directory.c
@@ -201,10 +201,16 @@ GNUNET_FS_directory_list_contents (size_t size,
201 struct GNUNET_CONTAINER_MetaData *md; 201 struct GNUNET_CONTAINER_MetaData *md;
202 char *filename; 202 char *filename;
203 203
204 if ( (offset == 0) &&
205 ( (size < 8 + sizeof (uint32_t)) ||
206 (0 != memcmp (cdata, GNUNET_FS_DIRECTORY_MAGIC, 8)) ) )
207 {
208 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
209 _("MAGIC mismatch. This is not a GNUnet directory.\n"));
210 return GNUNET_SYSERR;
211 }
204 pos = offset; 212 pos = offset;
205 if ( (pos == 0) && 213 if (offset == 0)
206 (size >= 8 + sizeof (uint32_t)) &&
207 (0 == memcmp (cdata, GNUNET_FS_DIRECTORY_MAGIC, 8)) )
208 { 214 {
209 memcpy (&mdSize, &cdata[8], sizeof (uint32_t)); 215 memcpy (&mdSize, &cdata[8], sizeof (uint32_t));
210 mdSize = ntohl (mdSize); 216 mdSize = ntohl (mdSize);