gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r19750 - gnunet/src/fs


From: gnunet
Subject: [GNUnet-SVN] r19750 - gnunet/src/fs
Date: Sat, 11 Feb 2012 21:14:11 +0100

Author: grothoff
Date: 2012-02-11 21:14:11 +0100 (Sat, 11 Feb 2012)
New Revision: 19750

Modified:
   gnunet/src/fs/fs_publish.c
Log:
-generate PUBLISH_STOP event later to avoid use-after-free

Modified: gnunet/src/fs/fs_publish.c
===================================================================
--- gnunet/src/fs/fs_publish.c  2012-02-11 15:56:33 UTC (rev 19749)
+++ gnunet/src/fs/fs_publish.c  2012-02-11 20:14:11 UTC (rev 19750)
@@ -1276,11 +1276,6 @@
     GNUNET_DATASTORE_cancel (pc->qre);
     pc->qre = NULL;
   }
-  if (NULL != pc->dsh)
-  {
-    GNUNET_DATASTORE_disconnect (pc->dsh, GNUNET_NO);
-    pc->dsh = NULL;
-  }
   if (GNUNET_SCHEDULER_NO_TASK != pc->upload_task)
   {
     GNUNET_SCHEDULER_cancel (pc->upload_task);
@@ -1297,8 +1292,6 @@
     pc->fi->serialization = NULL;
   }
   off = (pc->fi->chk_uri == NULL) ? 0 : GNUNET_ntohll 
(pc->fi->chk_uri->data.chk.file_length);
-  pi.status = GNUNET_FS_STATUS_PUBLISH_STOPPED;
-  GNUNET_break (NULL == GNUNET_FS_publish_make_status_ (&pi, pc, pc->fi, off));
 
   if (pc->serialization != NULL)
   {
@@ -1312,6 +1305,8 @@
     pc->in_network_wait = GNUNET_SYSERR;
     return;
   }
+  pi.status = GNUNET_FS_STATUS_PUBLISH_STOPPED;
+  GNUNET_break (NULL == GNUNET_FS_publish_make_status_ (&pi, pc, pc->fi, off));
   publish_cleanup (pc, NULL);
 }
 




reply via email to

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