diff options
author | dimitri staessens <dimitri.staessens@ugent.be> | 2017-09-21 11:22:49 +0200 |
---|---|---|
committer | dimitri staessens <dimitri.staessens@ugent.be> | 2017-09-21 11:24:41 +0200 |
commit | 1e3d0e5e869d6a920987d20cc6ed7a67f5c426bd (patch) | |
tree | 2f1eeb781679c34ec9289dabb5710fbbc00771e5 | |
parent | b66cf853efee91fcc43e2bbfcb1e39071b775d49 (diff) | |
download | ouroboros-1e3d0e5e869d6a920987d20cc6ed7a67f5c426bd.tar.gz ouroboros-1e3d0e5e869d6a920987d20cc6ed7a67f5c426bd.zip |
lib: Pass the fuse struct to the handling thread
This avoids potential data races on rib.fuse.
-rw-r--r-- | src/ipcpd/normal/dht.c | 2 | ||||
-rw-r--r-- | src/lib/rib.c | 6 |
2 files changed, 3 insertions, 5 deletions
diff --git a/src/ipcpd/normal/dht.c b/src/ipcpd/normal/dht.c index 996b122a..af1686a9 100644 --- a/src/ipcpd/normal/dht.c +++ b/src/ipcpd/normal/dht.c @@ -2240,7 +2240,7 @@ static void * dht_handle_sdu(void * o) ipcp_sdb_release(sdb); - free((struct sdu_info *) o); + free(o); if (msg == NULL) { log_err("Failed to unpack message."); diff --git a/src/lib/rib.c b/src/lib/rib.c index 579d9aac..dc78696b 100644 --- a/src/lib/rib.c +++ b/src/lib/rib.c @@ -227,9 +227,7 @@ static struct fuse_operations r_ops = { static void * fuse_thr(void * o) { - (void) o; - - if (fuse_loop(rib.fuse) < 0) + if (fuse_loop((struct fuse *) o) < 0) return (void *) -1; return (void *) 0; @@ -276,7 +274,7 @@ int rib_init(const char * prefix) if (pthread_rwlock_init(&rib.lock, NULL)) goto fail_rwlock_init; - if (pthread_create(&rib.fuse_thr, NULL, fuse_thr, NULL)) + if (pthread_create(&rib.fuse_thr, NULL, fuse_thr, rib.fuse)) goto fail_fuse_thr; fuse_opt_free_args(&args); |