gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r1782 - GNUnet/src/applications/fs/fsui


From: grothoff
Subject: [GNUnet-SVN] r1782 - GNUnet/src/applications/fs/fsui
Date: Sat, 20 Aug 2005 01:33:41 -0700 (PDT)

Author: grothoff
Date: 2005-08-20 01:33:40 -0700 (Sat, 20 Aug 2005)
New Revision: 1782

Modified:
   GNUnet/src/applications/fs/fsui/file_info.c
Log:
fixing leak and bug in URI tracking

Modified: GNUnet/src/applications/fs/fsui/file_info.c
===================================================================
--- GNUnet/src/applications/fs/fsui/file_info.c 2005-08-20 08:28:16 UTC (rev 
1781)
+++ GNUnet/src/applications/fs/fsui/file_info.c 2005-08-20 08:33:40 UTC (rev 
1782)
@@ -108,6 +108,7 @@
   stateAppendContent(STATE_NAME, ntohl(size), data);
   IPC_SEMAPHORE_UP(sem);
   IPC_SEMAPHORE_FREE(sem);
+  FREE(data);
   FREE(suri);
 }
 
@@ -171,21 +172,30 @@
     while ( (spos < ret) &&
            (result[spos] != '\0') )
       spos++;
-    if (spos + sizeof(int) >= ret)
+    spos++; /* skip '\0' */
+    if (spos + sizeof(int) >= ret) {
+      BREAK();
       goto FORMATERROR;
+    }
     fi.uri = ECRS_stringToUri(&result[pos]);
-    if (fi.uri == NULL)
+    if (fi.uri == NULL) {
+      BREAK();
       goto FORMATERROR;
-    memcpy(&msize, &result[spos], sizeof(int));
+    }
+    memcpy(&msize, 
+          &result[spos], 
+          sizeof(int));
     msize = ntohl(msize);
-    spos += 4;
+    spos += sizeof(int);
     if (spos + msize > ret) {
+      BREAK();
       ECRS_freeUri(fi.uri);
       goto FORMATERROR;
     }
     fi.meta = ECRS_deserializeMetaData(&result[spos],
                                       msize);
     if (fi.meta == NULL) {
+      BREAK();
       ECRS_freeUri(fi.uri);
       goto FORMATERROR;
     }





reply via email to

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