diff options
author | Christian Grothoff <christian@grothoff.org> | 2010-06-27 13:13:07 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2010-06-27 13:13:07 +0000 |
commit | 269edcfc22cea65fda93c958ddc97033a292acf9 (patch) | |
tree | 67614450f1770cf058d8777285013c223e04be89 | |
parent | 602c664c1e66ec128b524fe706c63776d1e9b404 (diff) | |
download | gnunet-269edcfc22cea65fda93c958ddc97033a292acf9.tar.gz gnunet-269edcfc22cea65fda93c958ddc97033a292acf9.zip |
properly check for gnd files
-rw-r--r-- | src/fs/fs_directory.c | 12 |
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); |