I found two issues in libgpg-error for spawning functions.
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Advanced Search
Feb 4 2026
POSIX documentation never says that PSHARED=0 prevents sharing among processes. In my opinion, it still conforms to POSIX even when a PSHARED=0 semaphore can be shared between parent and child processes.
Feb 3 2026
Will go into 1.12.1
Additionally, the de-vs-compliance filters are no longer show in non-compliant installations like Gpg4win.
I've tried the new patch in my environment, and it fixes the gnupg HEAD self tests as well. Thank you!
In tests/migrations, (unlike tests/openpgp and tests/cms), the tests do not prepare gpg-agent, but it is gpg which invokes gpg-agent if needed.
Because of that, on NetBSD (where POSIX semaphore has a different semantics), it hangs with gpg --list-secret-key, when gpg tries to spawn the gpg-agent process.
In the old code of 2.4, it simply ignores about the npth_protect and npth_unprotect sequence when calling fork to spawn a process.
New code in libgpg-error cares about npth_protect and npth_unprotect sequence but it was not sufficient; We need to care about NetBSD's semantics. Child process should not call npth_protect. With shared semantics, child process's calling npth_protect affects to cause parent process: it hangs.
@wiz Thank you for your quick feedback.
Feb 2 2026
Thank you for the patch. I've tried it in my environment, and gnupg 987c6a398a9505399b2c25a775d4b625753bc962 passes all its self-tests for me now!
Thank you, that did indeed fix the problem!
Oh yeah, the mentioned patch is bogus because it assumes that fgets has already set the eof flag while reading the last line. This seems not to be the case.
This is actually a (known) bug in gpg, i.e. gpg --delete-secret-and-public-key PRIMARY_KEY_FPR only deletes the public key for keys without primary secret key.
Makes me wonder why they think they can use such a common word for a typedef without risking name clashes everywhere. Luckily, the helper function single is superfluous nowadays so that we can easily avoid the name clash.
Thank you for the log.
Feb 1 2026
CVE-2026-24882 has been assigned to this issue.
Jan 31 2026
Jan 30 2026
I added the gpgsm log output in the description (same error as in the gpg log)
Ah, thanks for the pointer, I did not expect gpgsm to behave differently here. Then it's probably intentional and I'll close this as invalid.
The gnupg manual (page 113) mentions:
Thank you for looking at this.
I'm testing with gnupg git head as of today, please let me know if you prefer 2.5.17 instead.
Thank you for your report.
Jan 29 2026
works in vsd 3.3.5
I bisected it and found the commit that introduced this test failure:
@mmontkowski, use this as string:
In the same environment, 2.4.9 passes its self tests.
I've reverted the update in pkgsrc until this can be resolved.
Jan 28 2026
The previous pkgsrc version was 2.4.9. However, I've just tested 2.5.14 and saw the same behaviour (so I guess there is no point in testing 2.5.16).
Do you remember wether you had the same problem also with 2.5.14 or 2.5.16? Or can you test with these versions? Which version of libgpg-error are you using?
When I kill the gpg process, I see:
("/tmp/security/gnupg2/work/gnupg-2.5.17/g10/gpg" --no-permission-warning --no-greeting --no-secmem-warning --batch "--agent-program=/tmp/security/gnupg2/work/gnupg-2.5.17/agent/gpg-agent|--debug-quick-random" --list-sec
ret-keys) failed: gpg: starting migration from earlier GnuPG versionsMy actual plan is to rework the imp[ort/export of secret keys to gpg-agent. Right now gpg-agent has knowledge of OpenPGP for import/export. This is not good and the required conversion should be moved to a helper tools for easier testing and to have this out of the gpg-agent process. For Kyber we right now don't use any conversion mut store the secret keys in gpg-agent's native format. Thus the passphrase is not necessary. We need to figure out why we have this problem here.
Jan 27 2026
works in Gpg4win 5.0.1 with GnuPG 2.5.17
Jan 26 2026
To reproduce the hang, a loop will suffice (usually happens within the first 15 times, once it needed 50 runs):
There's no other configuration, this happens with a clean gnupghome with one smime cert + root cert and the above gpgsm.conf (output on stdin/stderr):
Jan 25 2026
Reconsidering this all I don't think it makes any sense to distinguish between (-1) and GPG_ERR_INV_PACKET. We use (-1) for a too short read of the hashed or unhashed area (premature eof). INV_PACKET is for unknown versions, too much data (arbitrary limit), bad parameters, and underflow. Let's forget my previous comment and always use INV_PACKET.
I think "O" is a better key:
We need to change the accelerator. Right now gpg-agent uses
Jan 23 2026
Please run with --debug 0 which should show you which confiration files are read in which order. Is there anything in a common.conf file? A log-file statement tehre would overwrite the command line option.
Jan 22 2026
Fixed and backported for VSD 3.4
Jan 21 2026
The "ca" root cert is not on the ldap, if that matters