<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gpgme/src, branch ben/master</title>
<subtitle>GnuPG Made Easy.</subtitle>
<id>http://git.bktus.com/gpgfrontend/gpgme/atom?h=ben%2Fmaster</id>
<link rel='self' href='http://git.bktus.com/gpgfrontend/gpgme/atom?h=ben%2Fmaster'/>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/'/>
<updated>2015-06-08T10:34:49Z</updated>
<entry>
<title>Fix regression with gpgsm 2.0 due to "OPTION with-secret".</title>
<updated>2015-06-08T10:34:49Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2015-06-08T10:34:49Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=ddbd54ef881bd2c3481d62b89bef7241667b64ee'/>
<id>urn:sha1:ddbd54ef881bd2c3481d62b89bef7241667b64ee</id>
<content type='text'>
* src/engine-gpgsm.c (gpgsm_assuan_simple_command): Do not terminate
on a status lines.
--

This bug has been with us since the support for gpgsm: If there is no
status line handler but a status line is received anyway the command
handling loop terminates and thus the command/answer order gets out of
sync.  In the case of the bug report this is triggered by sending an
option which starts the agent and that starting emits a "PROGRESS"
status line.

The solution is not to stop reading after a status line but record a
possible error code and return that only after OK or ERR.

GnuPG-bug-id: 1795
Signed-off-by: Werner Koch &lt;wk@gnupg.org&gt;
</content>
</entry>
<entry>
<title>Fix compiler warnings about unused value in TRACE macros.</title>
<updated>2015-06-08T09:08:08Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2015-06-08T09:08:08Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=8b9f84828cd04a7dab37e219123edc1905da8e6b'/>
<id>urn:sha1:8b9f84828cd04a7dab37e219123edc1905da8e6b</id>
<content type='text'>
* src/debug.h: Change macros to not have a literal 0 as last
expression of the comma operator.
* src/debug.c (_gpgme_debug_frame_end): Return 0.
(_gpgme_debug): Return 0.
--

Instead of using
   foo(), 0
for the trace macros we let foo() return 0 instead.

Signed-off-by: Werner Koch &lt;wk@gnupg.org&gt;
</content>
</entry>
<entry>
<title>Set GPGME_SIGSUM_KEY_REVOKED also for gpg.</title>
<updated>2015-06-05T12:58:06Z</updated>
<author>
<name>Matthew Barnes</name>
<email>mbarnes@redhat.com</email>
</author>
<published>2015-03-18T21:20:55Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=87d713ff41454bd08a345c63605f6fc7ac854dd4'/>
<id>urn:sha1:87d713ff41454bd08a345c63605f6fc7ac854dd4</id>
<content type='text'>
* src/verify.c (calc_sig_summary): Handle GPG_ERR_CERT_REVOKED.

--

parse_new_sig() handles a revoked key by setting sig-&gt;status to
GPG_ERR_CERT_REVOKED, but then later calc_sig_summary() expects that
code in sig-&gt;validity_reason.

Additional comments added by wk.
</content>
</entry>
<entry>
<title>Fix segv for userids with a backslash.</title>
<updated>2015-06-05T12:25:59Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2015-06-05T12:25:59Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=0d28a696163677d6b34a802b6beddecd805d0fc7'/>
<id>urn:sha1:0d28a696163677d6b34a802b6beddecd805d0fc7</id>
<content type='text'>
* src/engine-gpg.c (gpg_keylist_preprocess): Increment SRC for a
backslash.
--

This bug is not exploitable because this bug fills up .data with
backslashes and thus causes the segv.

Signed-off-by: Werner Koch &lt;wk@gnupg.org&gt;
</content>
</entry>
<entry>
<title>w32: Use -static-libgcc to avoid linking to libgcc_s_sjlj-1.dll.</title>
<updated>2015-04-13T13:35:06Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2015-04-13T13:35:06Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=524dacfbb6bb131f05a4ecab3d7bcd91c1b43d33'/>
<id>urn:sha1:524dacfbb6bb131f05a4ecab3d7bcd91c1b43d33</id>
<content type='text'>
* src/Makefile.am (extra_ltoptions): New.
(libgpgme_la_LDFLAGS): Use it.
(libgpgme_pthread_la_LDFLAGS): Ditto.
(libgpgme_glib_la_LDFLAGS): Ditto.
--

Since gcc 4.8 there is a regression in Mingw64 in that plain C
programs may link to libgcc_s.a which has a dependency on
libgcc_s_sjlj.dll.  This is for example triggered by using long long
arithmetic on a 32 bit Windows (e.g symbol __udivdi3).

Note that we don't use this patch for the Qt version which, as C++
programs, actually requires that DLL,

Signed-off-by: Werner Koch &lt;wk@gnupg.org&gt;
</content>
</entry>
<entry>
<title>Fix potential crash in trace macro.</title>
<updated>2015-03-16T12:40:34Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2015-03-16T12:40:34Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=8cfcdfe5564f87362e5ec1bfdca5c14aed9c45f0'/>
<id>urn:sha1:8cfcdfe5564f87362e5ec1bfdca5c14aed9c45f0</id>
<content type='text'>
* src/signers.c (gpgme_signers_add): Avoid deref of a NULL KEY in the
trace macro.
* src/engine-spawn.c (engspawn_release): Remove always true condition.
* src/engine-gpg.c (gpg_release): Ditto.

Signed-off-by: Werner Koch &lt;wk@gnupg.org&gt;
</content>
</entry>
<entry>
<title>Fix one byte too short malloc.</title>
<updated>2015-03-16T12:38:10Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2015-03-16T12:38:10Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=119f27032b822ace8c012b96f9e41bcf23251a54'/>
<id>urn:sha1:119f27032b822ace8c012b96f9e41bcf23251a54</id>
<content type='text'>
* src/engine-spawn.c (add_data): Fix malloc
--

Bummer.  Why did I subtracted one from the size?  Did I assume a
dynamically allocated structure with a string field which was not
going to be used?  Very strange.

Not a real problem though because malloc will anyway round up the
allocation to at least the next word size.

Detected by Stack 0.3.
</content>
</entry>
<entry>
<title>Return an error for some export key operations.</title>
<updated>2014-12-08T10:19:16Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2014-12-08T10:19:16Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=05258d427513a933f01d4df13aca834d797f91e7'/>
<id>urn:sha1:05258d427513a933f01d4df13aca834d797f91e7</id>
<content type='text'>
* src/context.h (OPDATA_EXPORT): New.
* src/export.c (op_data_t): New.
(release_op_data): New.
(parse_error): New.
(export_status_handler): New.
(export_start, export_ext_start): Prepare op_data.
(gpgme_op_export_ext, gpgme_op_export_keys): Return an error from the
status handler.
--

To support an error return also for the async functions we need to
extend the API.  Until we have done that this new features helps at
least in some cases; in particular for --send-keys.
</content>
</entry>
<entry>
<title>Update the previous commit</title>
<updated>2014-11-21T20:12:06Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2014-11-19T09:34:32Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=81ce87111f5a3f966188629abb07a4d0702e6db0'/>
<id>urn:sha1:81ce87111f5a3f966188629abb07a4d0702e6db0</id>
<content type='text'>
* src/sign.c (gpgme_op_sign_result): Reformat and take care of failed
malloc.
--

Although _gpgme_debug_trace() is current always true, the code should
be run always and not just in trace mode.  Also added error checking
to malloc and strdup.  And while at replace some while by for loop for
easier readability.
</content>
</entry>
<entry>
<title>Fix returning new signatures when there are none.</title>
<updated>2014-11-21T19:25:43Z</updated>
<author>
<name>Ben Kibbey</name>
<email>bjk@luxsci.net</email>
</author>
<published>2014-11-09T21:42:54Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=5942b0c7e0593b82b4c4a142c214d7a2649de104'/>
<id>urn:sha1:5942b0c7e0593b82b4c4a142c214d7a2649de104</id>
<content type='text'>
* src/sign.c (gpgme_op_sign_result): Test that invalid and valid
signatures add up to gpgme_signers_count().
--

When invalid and valid signatures do not equal gpgme_signers_count() it
means that there was a bad passphrase during signing after the first
signer. This leaves the result.signatures from previous signers intact
which isn't correct since gpg will report:

gpg: number of one-pass packets does not match number of signature
packets
gpg: can't handle this ambiguous signature data

during verify. So when this happens append the valid signatures to the
.invalid_signers list with .reason set to GPG_ERR_GENERAL.
</content>
</entry>
</feed>
