Blob Blame History Raw
diff -ruN xrdp-0.9.14-v/sesman/chansrv/chansrv_fuse.c xrdp-0.9.14/sesman/chansrv/chansrv_fuse.c
--- xrdp-0.9.14-v/sesman/chansrv/chansrv_fuse.c	2020-06-26 21:13:58.000000000 +1000
+++ xrdp-0.9.14/sesman/chansrv/chansrv_fuse.c	2020-08-31 20:24:21.516983364 +1000
@@ -1607,7 +1607,7 @@
         log_error("inode %ld is not valid", ino);
         fuse_reply_err(req, ENOENT);
     }
-    else if ((dh = (struct xfs_dir_handle *) fi->fh) == NULL)
+    else if ((dh = (struct xfs_dir_handle *) (unsigned long)fi->fh) == NULL)
     {
         /* something seriously wrong somewhere! */
         fuse_reply_buf(req, 0, 0);
@@ -2095,7 +2095,7 @@
 
     log_debug("want_bytes %zd bytes at off %lld", size, (long long) off);
 
-    if ((fh = (XFUSE_HANDLE *)fi->fh) == NULL)
+    if ((fh = (XFUSE_HANDLE *) (unsigned long)fi->fh) == NULL)
     {
         fuse_reply_err(req, EINVAL);
     }
@@ -2168,7 +2168,7 @@
     log_debug("write %zd bytes at off %lld to inode=%ld",
               size, (long long) off, ino);
 
-    if ((fh = (XFUSE_HANDLE *)fi->fh) == NULL)
+    if ((fh = (XFUSE_HANDLE *) (unsigned long)fi->fh) == NULL)
     {
         log_error("file handle fi->fh is NULL");
         fuse_reply_err(req, EINVAL);
@@ -2436,7 +2436,7 @@
 static void xfuse_cb_releasedir(fuse_req_t req, fuse_ino_t ino,
                                 struct fuse_file_info *fi)
 {
-    struct xfs_dir_handle *dh = (struct xfs_dir_handle *) fi->fh;
+    struct xfs_dir_handle *dh = (struct xfs_dir_handle *) (unsigned long)fi->fh;
     xfs_closedir(g_xfs, dh);
     fuse_reply_err(req, 0);
 }