diff -ur pmount-0.9.13-orig/src/fs.c pmount-0.9.13/src/fs.c --- pmount-0.9.13-orig/src/fs.c 2006-08-06 19:21:17.000000000 -0400 +++ pmount-0.9.13/src/fs.c 2006-08-25 10:56:42.000000000 -0400 @@ -22,6 +22,7 @@ { "udf", "nosuid,nodev,user", 1, "000", 1 }, { "iso9660", "nosuid,nodev,user", 1, NULL, 1 }, { "vfat", "nosuid,nodev,user,quiet,shortname=mixed", 1, "077", 1 }, + { "ntfs-3g", "silent,nonempty", 1, "077", 1 }, { "ntfs", "nosuid,nodev,user", 1, "077", 1 }, { "hfsplus", "nosuid,nodev,user", 1, NULL, 0 }, { "hfs", "nosuid,nodev,user", 1, NULL, 0 }, Only in pmount-0.9.13/src: fs.c.orig Only in pmount-0.9.13/src: fs.c.rej diff -ur pmount-0.9.13-orig/src/pmount.c pmount-0.9.13/src/pmount.c --- pmount-0.9.13-orig/src/pmount.c 2006-08-15 16:47:45.000000000 -0400 +++ pmount-0.9.13/src/pmount.c 2006-08-25 10:55:33.000000000 -0400 @@ -286,6 +286,12 @@ return -1; } snprintf( iocharset_opt, sizeof( iocharset_opt ), ",iocharset=%s", iocharset ); + /* for ntfs-3g we will use the locale= option */ + if (strcmp (fsname, "ntfs-3g") == 0) { + debug( "filesystem is ntfs-3g. Setting locale to %s\n", setlocale( LC_ALL, "" )); + snprintf( iocharset_opt, sizeof( iocharset_opt ), ",locale=%s", setlocale( LC_ALL, "" )); + } + } snprintf( options, sizeof( options ), "%s%s%s%s%s%s%s%s", Only in pmount-0.9.13/src: pmount.c.orig diff -ur pmount-0.9.13-orig/src/policy.c pmount-0.9.13/src/policy.c --- pmount-0.9.13-orig/src/policy.c 2006-08-15 17:00:37.000000000 -0400 +++ pmount-0.9.13/src/policy.c 2006-08-25 10:55:33.000000000 -0400 @@ -242,7 +242,7 @@ return 0; } - if( !S_ISBLK( st.st_mode ) ) { + if( !S_ISBLK( st.st_mode ) && (strcmp (device, "/dev/fuse") != 0) ) { fprintf( stderr, _("Error: %s is not a block device\n"), device ); return 0; } diff -ur pmount-0.9.13-orig/src/pumount.c pmount-0.9.13/src/pumount.c --- pmount-0.9.13-orig/src/pumount.c 2005-12-16 05:43:40.000000000 -0500 +++ pmount-0.9.13/src/pumount.c 2006-08-25 10:55:33.000000000 -0400 @@ -1,3 +1,4 @@ + /** * pumount.c - policy wrapper around 'umount' to allow mounting removable * devices for normal users @@ -76,10 +77,13 @@ } /* mount point must be below MEDIADIR */ - if( strncmp( mntpt, MEDIADIR, sizeof( MEDIADIR )-1 ) ) { + /* don't check for fuse cause the mount point could be an other one */ + if (strcmp (device, "/dev/fuse") != 0) { + if( strncmp( mntpt, MEDIADIR, sizeof( MEDIADIR )-1 ) ) { fprintf( stderr, _("Error: mount point %s is not below %s\n"), mntpt, MEDIADIR ); return -1; + } } debug( "policy check passed\n" );