gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r16236 - gnunet/src/fragmentation


From: gnunet
Subject: [GNUnet-SVN] r16236 - gnunet/src/fragmentation
Date: Wed, 27 Jul 2011 09:40:39 +0200

Author: grothoff
Date: 2011-07-27 09:40:39 +0200 (Wed, 27 Jul 2011)
New Revision: 16236

Modified:
   gnunet/src/fragmentation/defragmentation.c
   gnunet/src/fragmentation/fragmentation.c
   gnunet/src/fragmentation/test_fragmentation.c
Log:
fix

Modified: gnunet/src/fragmentation/defragmentation.c
===================================================================
--- gnunet/src/fragmentation/defragmentation.c  2011-07-27 07:32:32 UTC (rev 
16235)
+++ gnunet/src/fragmentation/defragmentation.c  2011-07-27 07:40:39 UTC (rev 
16236)
@@ -18,7 +18,7 @@
      Boston, MA 02111-1307, USA.
 */
 /**
- * @file src/fragmentation/defragmentation_new.c
+ * @file src/fragmentation/defragmentation.c
  * @brief library to help defragment messages
  * @author Christian Grothoff
  */
@@ -441,6 +441,11 @@
     }
   fh = (const struct FragmentHeader*) msg;
   msize = ntohs (fh->total_size);
+  if (msize < sizeof (struct GNUNET_MessageHeader))
+    {
+      GNUNET_break_op (0);
+      return GNUNET_SYSERR;
+    }
   fid = ntohl (fh->fragment_id);
   foff = ntohs (fh->offset);
   if (foff >= msize)
@@ -554,5 +559,5 @@
   return GNUNET_YES;
 }
 
-/* end of defragmentation_new.c */
+/* end of defragmentation.c */
 

Modified: gnunet/src/fragmentation/fragmentation.c
===================================================================
--- gnunet/src/fragmentation/fragmentation.c    2011-07-27 07:32:32 UTC (rev 
16235)
+++ gnunet/src/fragmentation/fragmentation.c    2011-07-27 07:40:39 UTC (rev 
16236)
@@ -18,7 +18,7 @@
      Boston, MA 02111-1307, USA.
 */
 /**
- * @file src/fragmentation/fragmentation_new.c
+ * @file src/fragmentation/fragmentation.c
  * @brief library to help fragment messages
  * @author Christian Grothoff
  */
@@ -249,11 +249,11 @@
                            _("# messages fragmented"),
                            1, GNUNET_NO);
   GNUNET_assert (mtu >= 1024 + sizeof (struct FragmentHeader));
-  size = ntohs (msg->size);
+  size = ntohs (msg->size); 
   GNUNET_STATISTICS_update (stats,
                            _("# total size of fragmented messages"),
                            size, GNUNET_NO);
-  //GNUNET_assert (size > mtu);
+  GNUNET_assert (size >= sizeof (struct GNUNET_MessageHeader));
   fc = GNUNET_malloc (sizeof (struct GNUNET_FRAGMENT_Context) + size);
   fc->stats = stats;
   fc->mtu = mtu;
@@ -398,5 +398,5 @@
 }
 
 
-/* end of fragmentation_new.c */
+/* end of fragmentation.c */
 

Modified: gnunet/src/fragmentation/test_fragmentation.c
===================================================================
--- gnunet/src/fragmentation/test_fragmentation.c       2011-07-27 07:32:32 UTC 
(rev 16235)
+++ gnunet/src/fragmentation/test_fragmentation.c       2011-07-27 07:40:39 UTC 
(rev 16236)
@@ -208,7 +208,7 @@
   for (i=0;i<NUM_MSGS;i++)
     {
       msg->type = htons ((uint16_t) i);
-      msg->size = htons ( 1 + (17 * i) % (32 * 1024));
+      msg->size = htons (sizeof (struct GNUNET_MessageHeader) + (17 * i) % (32 
* 1024));
       frags[i] = GNUNET_FRAGMENT_context_create (NULL /* no stats */, 
                                                 MTU,
                                                 &trackers[i],




reply via email to

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