SCD SERIALNO serialno can move the first card in the list in scdaemon.
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Advanced Search
Nov 8 2024
Nov 7 2024
@ikloecker Using scdaemon with multiple cards, it is a connection which holds the card.
@ikloecker Thank you sharing the problem. I don't know much aboug NKS card.
Nov 6 2024
I found a problem of possible duplicate registration of another APP, due to no serialization for CARD access.
The resource leak was fixed in: rG40707c8bff49: agent: Fix resource leak for PRIMARY_CTX.
Nov 1 2024
@ebo Thank you for your continuous testing.
Oct 31 2024
@ikloecker : Thanks for investigating. Please note that gpg-agent is incompatible wrt LISTTRUSTED (2.2 vs 2.4). So, No data callback in IPC maybe expected with gpg-agent 2.4.
Oct 25 2024
Oct 24 2024
I created a branch: https://dev.gnupg.org/source/libgcrypt/history/gniibe%252Ft7340/
Oct 23 2024
Thanks. Fixed in: rEd14c69a7f256: Avoid use of 'nullptr' for an identifier.
Oct 22 2024
Oct 21 2024
I found fd resource leak in gpg-agent.
- gpg-connect-agent "scd killscd" /bye seems not release a file descriptor somewhere
Oct 18 2024
For the second case, I think that gcry_kdf_defive should not be called with pw="". The result of FAILURE gpg-exit 33554433 comes from the log_error after failure of gcry_kdf_derive.
Oct 16 2024
Autoconf archive has AX_TLS: https://www.gnu.org/software/autoconf-archive/ax_tls.html
Also, AX_GCC_VAR_ATTRIBUTE(tls_model) could be used: https://www.gnu.org/software/autoconf-archive/ax_gcc_var_attribute.html
Good catch, @ikloecker !
I located the bug in GnuPG, and the fix is: rG71840b57f486: common: Fix a race condition in creating socketdir.
Oct 15 2024
Oct 11 2024
With the change, T7169 is fixed (by side-effect).
Pushed the change: rE1860f6407f83: spawn: Add new function to modify environment.
Oct 10 2024
Oct 9 2024
Replacing gpgrt_spawn_actions_set_environ by gpgrt_spawn_actions_set_envchange is not good, as it's exported and already used.
Oct 8 2024
Pushed the fix for exporting OpenPGP v5 key: rG57dce1ee62c2: common,gpg,scd,sm: Fix for Curve25519 OID supporting new and old.
Oct 3 2024
The OID is used for fingerprint computation, which complicates things.
Oct 2 2024
Oct 1 2024
Fixed in master: rGe7891225788a: gpg: Robust error handling for SCD READKEY.
Sep 30 2024
Sep 27 2024
Here is my attempt:
It is reproducible bug even with master branch.
Sep 26 2024
I have a look at the log file of gpg-agent.log. I can see that six PKDECRYPT requests are handled simultaneously. I think that it's out of secure memory to decrypt the private key which results pinentry request.
Sep 25 2024
Fixed in pinentry 1.3, when using GnuPG 2.4 or later.
Sep 24 2024
Fixed in libassuan 3.0.0.
Done in GnuPG 2.5.0.
Sep 20 2024
The change of spawn functions (basically, it was factored out to libgpg-error) results more possibilities to have blocked scdaemon, since the implementation in libgpg-error introduced context switch points when it spawns a child process.
Found another thinko; When there is no clients with DEVINFO --watch, the pipe to be notified is not consumed at all (no read). It eventually results blocked by write(2), when the pipe is filled.
Sep 19 2024
Do you have scd-event script in your GNUPGHOME?
I applied rGb804378f183f: kbx: Fix a race condition on DATABASE_HD. in master. Let us see how behavior changes.
I found one problem. This problem may result lock-up on Windows, I suppose.
I mean: two gpg-agent requests simultaneously running DEVINFO --watch.
Single scdaemon, two threads handling DEVINFO --watch simultaneously, by pselect + read.
Two threads waken up, but it was only one thread which can read(2), another was blocked (before the fix).
Sep 18 2024
For POSIX, I found an issue of T7151.
If you are using multiple clients which invoke SCD DEVINFO --watch, the problem should be fixed.
If it's not the case, let us locate a bug (or two).
I realized that I put a bug on POSIX; When multiple clients do DEVINFO --watch, it is possible for scdaemon to hang (waiting pselect and read, read by one, read by another is blocked).
Sep 17 2024
Fixed GnuPG 2.4 in: rG730593affa91: common:w32: Don't expose unused functions.
For now, I'm using this to avoid failure of make check (invoking gpg-agent by gpg-connect-agent).
diff --git a/common/stringhelp.c b/common/stringhelp.c index 9a2265258..6596c65cd 100644 --- a/common/stringhelp.c +++ b/common/stringhelp.c @@ -70,6 +70,22 @@ change_slashes (char *name) { #ifdef HAVE_DOSISH_SYSTEM char *p; + /* 0: don't know yet, 1: it's under wine, -1: no */ + static int semihosted_by_wine; + + /* Under wine, no change. */ + if (!semihosted_by_wine) + { + HMODULE hntdll = GetModuleHandle ("ntdll.dll"); + if (hntdll + && GetProcAddress (hntdll, "wine_get_version")) + semihosted_by_wine = 1; + else + semihosted_by_wine = -1; + } + + if (semihosted_by_wine > 0) + return name;
libgpg-error fix is done in: rEc2a713fe11e3: w32:spawn: Remove unused function get_max_fds.
Sep 16 2024
Sep 13 2024
Sep 12 2024
Sep 11 2024
Sep 9 2024
Since CreateProcessW allows two ways for lpEnvironment (one is ANSI environment block, another is Unicode environment block), if we want to support these two ways for users' of gpgrt spawn API, we would offer either:
I'm talking about CreateProcessW and how a user of gpgrt spawn API can specify lpEnvironment (when needed).
Thank you. Applied.