567 Commits

Author SHA1 Message Date
relan
1264da3d59 CI: bump FreeBSD to 15.0. 2025-12-21 18:26:06 +03:00
relan
8cffe412ea Include config.h before all other headers.
The defines in config.h may affect OS and FUSE API and ABI, so make sure
to include it before everything else.
2025-06-14 11:11:09 +03:00
relan
498a23ea3d Check for ublio only on FreeBSD hosts. 2025-06-14 11:11:02 +03:00
relan
75becf3606 Fix binary compatibility between fuse and others.
CFLAGS from fuse.pc may affect ABI, e.g. enable 64-bit inode numbers on
Mac OS X 10.5. Propagate FUSE CFLAGS to all other components to ensure
binary compatibility.
2025-06-11 13:47:33 +03:00
relan
e6d74e94ad Disable macFUSE extensions.
Those extensions change FUSE API making it incompatible with the
upstream FUSE. Disable them for now.
2025-06-09 11:19:28 +03:00
relan
524a78f7d7 CI: bump FreeBSD to 14.2. 2025-03-22 11:18:58 +03:00
relan
7b06b45342 CI: update macOS Ventura to Sequoia.
Also drop --preinstall option since Homebrew removed it.
2025-03-22 11:17:40 +03:00
relan
0b41c6d356 CI: bump FreeBSD to 13.1. 2023-03-10 19:46:29 +03:00
relan
5e4e277ffe CI: bump GCC to 12 in Debian containers. 2023-03-10 19:15:54 +03:00
relan
0372fdeab2 Bump version to 1.4.0 and update changelog. v1.4.0 2023-03-02 22:49:24 +03:00
relan
cf2d9bd161 Update copyright years. 2023-03-02 22:32:35 +03:00
Will Thompson
ec78559d72 attrib: qualify device with an option.
I learned that the in-kernel FAT implementation in Linux supports two
ioctls, FAT_IOCTL_GET_ATTRIBUTES and FAT_IOCTL_SET_ATTRIBUTES, to get
and set file attributes on a mounted file system.

If this FUSE exFAT implementation (and/or the new in-kernel
implementation on Linux) were to implement such an ioctl in future, it
would be nice to be able to adjust this tool to support that usage
without breaking its command-line arguments in a backwards-incompatible
way. To future-proof against that, require a '-d' option to specify the
target device.

This would also allow the command to accept more that one path, like
chmod.
2023-02-27 12:40:52 +03:00
Will Thompson
41fd196b46 attrib: add tool to set or modify file attributes.
exFAT files may be marked as hidden, read-only, or system. While these
flags may be ignored on Unix platforms, it may be useful to mark a file
as hidden when building a file system image destined for use on Windows.

This new tool allows these three flags to be set or cleared on a single
file on a file system. If run with no flags, it displays the file's
current attributes, including "dir" and "arch" (whatever that is).
2023-02-27 12:40:52 +03:00
relan
91fba49f0f CI: test exfatlabel. 2023-02-27 11:58:09 +03:00
relan
7d92d53f83 CI: enable address and UB sanitizers. 2023-02-27 11:42:14 +03:00
relan
1cd8eb4dd8 CI: enable GCC static analyzer for debian-fuse3. 2023-02-18 15:00:47 +03:00
relan
9bb9ab417d CI: update macOS Big Sur to Ventura.
Cirrus deprecates Intel-based macOS images.
2022-12-30 11:47:43 +03:00
relan
d8d66f9a65 Implement valid size handling.
Handle valid size on truncate, read and write operations.
2022-12-29 13:28:22 +03:00
relan
d7e780da26 Maintain valid_size in exfat_node. 2022-12-29 12:48:59 +03:00
relan
f24489a88d Rename newsize to uoffset.
Because that's what it actually is: the unsigned version of offset.
2022-12-29 12:48:59 +03:00
relan
57912599d8 Do not treat device opening error as FS error.
This makes more sense, e.g. when the user mistyped the device name or
does not have enough privileges.
2022-12-29 12:19:40 +03:00
relan
9f09fe3ce7 CI: add FUSE 3 task. 2022-12-29 12:05:03 +03:00
relan
7cbc1544a4 Add FUSE 3 support to configure. 2022-12-29 12:05:03 +03:00
relan
e2bc952da6 Allow building with FUSE_USE_VERSION >= 30.
Some fuse_operations changed their prototypes.
2022-12-29 12:05:03 +03:00
Pablo Mendez Hernandez
deffad2e71 Allow building with FUSE_USE_VERSION >= 30.
filler() function gained an argument.
2022-12-29 11:55:58 +03:00
relan
cdd8f98023 Fix a couple of typos in comments. 2022-10-04 21:54:01 +03:00
relan
8cfa4d9493 Drop AC_PROG_CC_C99.
Obsolete since autoconf 2.70.
2022-04-22 12:39:59 +03:00
relan
11e4f032d1 Drop "user" option for FreeBSD.
FreeBSD FUSE implementation does not support it actually.
2021-11-16 16:42:59 +03:00
relan
a8de7e2db3 Free options strings on error.
Make clang static analyzer happy.
2021-10-23 14:42:26 +03:00
relan
da00dc5d05 Make error handling in find_slot() more robust.
check_slot() can potentially return any value besides 0, -EIO and
-EINVAL.
2021-10-23 14:40:58 +03:00
relan
f826fee074 CI: switch to Debian 11 with GCC 11.
Also enable warnings as errors and GCC's static analyzer.
2021-10-09 11:11:15 +03:00
relan
ab19b44cd3 Duplicate debug messages into syslog.
May be helpful when running detached from tty.
2021-07-04 10:25:54 +03:00
relan
e53fa1b43b Make exfat_debug() elimination a bit safer. 2021-07-04 10:24:47 +03:00
Dave Vasilevsky
c1132b5e2a Properly get disk size on NetBSD. 2021-06-30 21:02:25 +03:00
Iouri V. Ivliev
cfb6da6cee Add "automounted" to passthrough options list for FreeBSD. 2021-06-30 20:39:37 +03:00
relan
d8237de31e CI: use Cirrus.
Run on Debian 10, macOS Big Sur and FreeBSD 13.0 for now.
2021-06-30 20:24:51 +03:00
relan
e2efee252c CI: drop Travis.
There are much better ways to spend $69/month.
2021-06-30 11:53:45 +03:00
relan
7899317f33 Pass through some options to FUSE.
Allow users to specify the "nonempty" mount option.
2021-04-10 10:46:32 +03:00
relan
02b793c0bd Move match_option() to libexfat/utils.c.
To be used in a later patch.
2021-04-10 10:46:32 +03:00
relan
0d4be1a52e CI: update osx image to macOS 10.15.7 (Xcode 12.2).
The default macOS 10.13 (Xcode 9.4.1) doesn't work, it seems.
2021-04-10 10:35:13 +03:00
relan
02eba9adf0 CI: define the build matrix explicitly. 2021-04-10 10:30:10 +03:00
dineshks1
66747e2df0 CI: add Ubuntu 18.04 (amd64, ppc64le) jobs. 2020-11-24 20:46:02 +03:00
relan
559c61f26c Add basic CI.
Build and run mkfs and fsck on:

* Ubuntu 18.04 (s390x) <https://docs.travis-ci.com/user/reference/bionic>
* macOS 10.13 (amd64) <https://docs.travis-ci.com/user/reference/osx>
2020-05-04 19:07:34 +03:00
relan
4e6606bb5f Fix cluster bitmap traversal on big endian machines.
We define bitmap_t to unsigned char on big endian systems to avoid byte
order conversions. But bitwise complement causes integer promotion and
makes the condition always false. Truncate the result after complementing
zero.
2020-05-04 18:53:09 +03:00
relan
3fc0205178 Fix format warning.
Found by clang 902.0.39.2.
2020-05-04 18:53:09 +03:00
relan
f15b0e4676 Fix more comparisons between signed and unsigned values.
Found by gcc 7.4.0.
2020-05-04 18:53:09 +03:00
noctis
00cd408632 Fix file contiguous judgement.
Signed-off-by: noctis <noctis.AKM@gmail.com>
2020-05-04 18:49:27 +03:00
relan
96ff4f2968 Add platform macros for illumos.
With this change fuse-exfat reportedly works on OpenIndiana.
2020-05-04 14:04:28 +03:00
relan
66e3a25514 Validate UTF-8 byte sequence.
The 2nd and subsequent bytes in a UTF-8 byte sequence must look like
10xxxxxx. The missing checks could lead to crash later.
2020-03-07 09:20:26 +03:00
relan
4610ce90f9 Rename UTF-related functions.
Avoid conflicts with Android's libutils. Those functions should have had
the "exfat" prefix from the very beginning...
2020-02-29 11:46:41 +03:00