<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gocryptfs/internal/syscallcompat, branch xattr_user_buffer</title>
<subtitle>Mirror of gocryptfs source code on Github</subtitle>
<id>http://nuetzlich.net/cgit/gocryptfs/atom?h=xattr_user_buffer</id>
<link rel='self' href='http://nuetzlich.net/cgit/gocryptfs/atom?h=xattr_user_buffer'/>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/'/>
<updated>2026-02-03T19:28:10+00:00</updated>
<entry>
<title>Use user-provided Listxattr buffer size</title>
<updated>2026-02-03T19:28:10+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2026-02-02T21:18:25+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=14045511d3d91f36845a138359718c0fe7dff21c'/>
<id>urn:sha1:14045511d3d91f36845a138359718c0fe7dff21c</id>
<content type='text'>
This huge buffer showed up big time in ./profiling/ls.bash
and caused a 2x LS benchmark slowdown.

Instead of the fixed-size buffer, use the buffer size
hint the user has provided us.

We return inaccurate (larger than actual, which should be safe)
numbers when the user has provided no buffer (size probe).
</content>
</entry>
<entry>
<title>syscallcompat: DetectQuirks: unbreak darwin</title>
<updated>2026-02-01T20:25:51+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2026-02-01T20:25:10+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=bc94538cf36be37dc915c693fbfd56588c2c19a6'/>
<id>urn:sha1:bc94538cf36be37dc915c693fbfd56588c2c19a6</id>
<content type='text'>
Error: internal/syscallcompat/quirks_darwin.go:36:3: undefined: logQuirk
</content>
</entry>
<entry>
<title>syscallcompat: DetectQuirks: suppress Btrfs message when -noprealloc has been passed</title>
<updated>2026-02-01T19:05:13+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2026-02-01T19:05:13+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=ed5f8487b15f1d9cd83b4b0a4220271b6c5f189e'/>
<id>urn:sha1:ed5f8487b15f1d9cd83b4b0a4220271b6c5f189e</id>
<content type='text'>
Reported by @Tunoac, https://github.com/rfjakob/gocryptfs/issues/395#issuecomment-3828507487
</content>
</entry>
<entry>
<title>Fix go vet 1.25.4 "non-constant format string" issues</title>
<updated>2025-12-14T10:39:31+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2025-12-14T10:33:25+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=4762992b706a9d1950a86248720199ae8cd5d3e5'/>
<id>urn:sha1:4762992b706a9d1950a86248720199ae8cd5d3e5</id>
<content type='text'>
$ go version
go version go1.25.4 linux/amd64

$ go vet ./...
./init_dir.go:71:21: non-constant format string in call to (*github.com/rfjakob/gocryptfs/v2/internal/tlog.toggledLogger).Printf
./main.go:123:19: non-constant format string in call to (*github.com/rfjakob/gocryptfs/v2/internal/tlog.toggledLogger).Printf
./masterkey.go:29:20: non-constant format string in call to (*github.com/rfjakob/gocryptfs/v2/internal/tlog.toggledLogger).Printf
./masterkey.go:56:20: non-constant format string in call to (*github.com/rfjakob/gocryptfs/v2/internal/tlog.toggledLogger).Printf
./mount.go:415:20: non-constant format string in call to (*github.com/rfjakob/gocryptfs/v2/internal/tlog.toggledLogger).Printf
internal/tlog/log.go:76:18: non-constant format string in call to (*log.Logger).Printf
internal/syscallcompat/quirks.go:19:19: non-constant format string in call to (*github.com/rfjakob/gocryptfs/v2/internal/tlog.toggledLogger).Printf
</content>
</entry>
<entry>
<title>quirks: drop tmpfs xattr quirk</title>
<updated>2025-11-29T21:01:03+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2025-11-29T21:01:03+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=4c6d3926008347d5034bdbade8077890425a55ec'/>
<id>urn:sha1:4c6d3926008347d5034bdbade8077890425a55ec</id>
<content type='text'>
tmpfs supports user xattrs since Linux 6.6 (anno 2023):
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2daf18a7884dc03d5164ab9c7dc3f2ea70638469
</content>
</entry>
<entry>
<title>darwin: syscallcompat: add RenameatxNp plus flags</title>
<updated>2025-08-07T21:06:03+00:00</updated>
<author>
<name>rafjaf</name>
</author>
<published>2025-07-20T16:24:34+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=f59e552e755f35c0278eaebd27a0dacb10914551'/>
<id>urn:sha1:f59e552e755f35c0278eaebd27a0dacb10914551</id>
<content type='text'>
Fix macos file saving problem by implementing RENAME_EXCHANGE flag.
With test.

The dummy value for RENAME_WHITEOUT collides with the new
flags. Move it wayyy up.

https://github.com/rfjakob/gocryptfs/issues/914
</content>
</entry>
<entry>
<title>Fix all staticcheck errors in gocryptfs codebase</title>
<updated>2025-07-08T17:54:14+00:00</updated>
<author>
<name>copilot-swe-agent[bot]</name>
</author>
<published>2025-07-07T18:18:12+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=386232f39ede046d6453a0990ad40f2d86a26f53'/>
<id>urn:sha1:386232f39ede046d6453a0990ad40f2d86a26f53</id>
<content type='text'>
Co-authored-by: rfjakob &lt;286847+rfjakob@users.noreply.github.com&gt;

Add staticcheck to test.bash for continuous static analysis

Co-authored-by: rfjakob &lt;286847+rfjakob@users.noreply.github.com&gt;

Fix nil pointer dereference in timesToTimespec function

The previous fix for deprecated fuse.UtimeToTimespec caused a panic
because unix.TimeToTimespec doesn't handle nil pointers. This fix
properly handles nil pointers by using unix.UTIME_OMIT while still
using the non-deprecated unix.TimeToTimespec function.

Co-authored-by: rfjakob &lt;286847+rfjakob@users.noreply.github.com&gt;

Undo SA6002 changes and add staticcheck ignore directive instead

Co-authored-by: rfjakob &lt;286847+rfjakob@users.noreply.github.com&gt;
</content>
</entry>
<entry>
<title>Fix a bunch of staticcheck errors</title>
<updated>2025-07-07T17:59:35+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2025-07-07T17:54:48+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=8f5df19b353e02ffba842fd1b15ccf93da7ee3b4'/>
<id>urn:sha1:8f5df19b353e02ffba842fd1b15ccf93da7ee3b4</id>
<content type='text'>
Tool-assisted.
</content>
</entry>
<entry>
<title>syscallcompat: fix build contraints on thread_credentials_linux_368_arm.go</title>
<updated>2025-04-06T09:14:03+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2025-04-06T09:14:03+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=27abe23de847eff630f6768e7296cf3e6a6322b4'/>
<id>urn:sha1:27abe23de847eff630f6768e7296cf3e6a6322b4</id>
<content type='text'>
This file was only compiled for arm because
(  https://pkg.go.dev/cmd/go#hdr-Build_constraints ):

	If a file's
	name, after stripping the extension and a possible _test suffix,
	matches any of the following patterns:

	*_GOOS
	*_GOARCH
	*_GOOS_GOARCH

	(example: source_windows_amd64.go) where GOOS and GOARCH
	represent any known operating system and architecture values
	respectively, then the file is considered to have an implicit
	build constraint requiring those terms (in addition to any
	explicit constraints in the file).

Error was:

	+ GOOS=linux
	+ GOARCH=386
	+ build
	+ go build -tags without_openssl -o /dev/null
	# github.com/rfjakob/gocryptfs/v2/internal/syscallcompat
	Error: internal/syscallcompat/asuser_linux.go:41:8: undefined: Setregid
	Error: internal/syscallcompat/asuser_linux.go:47:8: undefined: Setreuid
	Error: internal/syscallcompat/thread_credentials_linux.go:29:10: undefined: setgroups
	Error: internal/syscallcompat/thread_credentials_linux.go:36:9: undefined: setgroups
	Error: internal/syscallcompat/thread_credentials_linux.go:49:9: undefined: Setregid
	Error: internal/syscallcompat/thread_credentials_linux.go:57:9: undefined: Setreuid

Rename the file to fix the problem. And add a comment about why this file exists.

Fixes https://github.com/rfjakob/gocryptfs/issues/907
</content>
</entry>
<entry>
<title>syscallcompat: use our own Setgroups/Setregid/Setreuid wrappers</title>
<updated>2025-02-26T20:38:36+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2025-02-26T20:38:36+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=6b1ba5846b17eec710a70cb6c6bf23e3f2024289'/>
<id>urn:sha1:6b1ba5846b17eec710a70cb6c6bf23e3f2024289</id>
<content type='text'>
x/sys v0.1.0 (https://github.com/golang/sys/commit/d0df966e6959f00dc1c74363e537872647352d51)
breaks our usecase. Switch to our own wrappers.

Relates-to: https://github.com/rfjakob/gocryptfs/issues/892
Relates-to: https://github.com/rfjakob/gocryptfs/issues/893
</content>
</entry>
</feed>
