Fix use-after-free in network address lookups.
[bluesky.git] / bluesky / inode.c
index b4b363c..cabaa34 100644 (file)
@@ -95,6 +95,7 @@ BlueSkyFS *bluesky_new_fs(gchar *name)
 
     fs->log_state = g_new0(BlueSkyCloudLogState, 1);
     fs->log_state->data = g_string_new("");
+    fs->log_state->latest_cleaner_seq_seen = -1;
 
     bluesky_cloudlog_threads_init(fs);
     fs->inode_fetch_thread_pool = g_thread_pool_new(inode_fetch_task, NULL,
@@ -131,6 +132,8 @@ BlueSkyFS *bluesky_init_fs(gchar *name, BlueSkyStore *store,
         bluesky_inode_do_sync(root);
     }
 
+    bluesky_cleaner_thread_launch(fs);
+
     return fs;
 }
 
@@ -359,6 +362,8 @@ static void inode_fetch_task(gpointer a, gpointer b)
 {
     BlueSkyInode *inode = (BlueSkyInode *)a;
 
+    bluesky_profile_set((BlueSkyProfile *)inode->private_data);
+
     BlueSkyCloudLog *item = inode->committed_item;
     inode->committed_item = NULL;
     g_print("Completing fetch of inode %"PRIu64"...\n", inode->inum);
@@ -404,5 +409,6 @@ void bluesky_inode_fetch(BlueSkyFS *fs, uint64_t inum)
     bluesky_cloudlog_ref(entry->item);
     bluesky_insert_inode(fs, inode);
 
+    inode->private_data = bluesky_profile_get();
     g_thread_pool_push(fs->inode_fetch_thread_pool, inode, NULL);
 }