<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/mime-node.c, branch 0.25.2</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=0.25.2</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=0.25.2'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2017-11-05T19:41:13Z</updated>
<entry>
<title>cli/crypto: fix segfault on failed gmime2 crypto context creation</title>
<updated>2017-11-05T19:41:13Z</updated>
<author>
<name>Jani Nikula</name>
<email>jani@nikula.org</email>
</author>
<published>2017-10-16T15:40:44Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=cd3f5e1a934b9952ca718e0c5bc1471b3884020c'/>
<id>urn:sha1:cd3f5e1a934b9952ca718e0c5bc1471b3884020c</id>
<content type='text'>
Commit 1fdc08d0ffab ("cli/crypto: treat failure to create a crypto
context as fatal.") started treating crypto context creation failures
"as fatal", returning NULL from _mime_node_create().

Unfortunately, we do not have NULL checks for _mime_node_create()
failures. The only caller, mime_node_child(), could check and return
NULL (as it's documented to do on errors) but none of the several call
sites have NULL checks either. And none of them really have a trivial
but feasible and graceful way of recovery.

So while the right thing to do would be to handle NULL returns
properly all over the place, and we have other scenarios that do
return NULL from above mentioned functions, the crypto context
creation failure is something that does seem to show up regularly in
some scenarios, revert back to the functionality before commit
1fdc08d0ffab as an interim fix.
</content>
</entry>
<entry>
<title>crypto: Avoid explicit handling of GMimeCryptoContext in gmime 3</title>
<updated>2017-07-16T00:43:08Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2017-07-15T23:01:45Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=66c9b11bb05e09a7fa2a8ff390190cc16c1499e6'/>
<id>urn:sha1:66c9b11bb05e09a7fa2a8ff390190cc16c1499e6</id>
<content type='text'>
gmime 3.0 knows how to select the correct GMimeCryptoContext
automatically, so a bunch of the code in notmuch can be dropped in
that case.

The #ifdef removal of the crypto stuff is better than #define aliasing
in gmime-extra.h for this stuff.  When built against gmime 3.0:

    * it reduces compiled code, and
    * it avoids initializing unused gpgme contexts

(based on a patch from dkg)
</content>
</entry>
<entry>
<title>cli/crypto: eliminated compiler warnings about unused arguments</title>
<updated>2017-07-16T00:42:49Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2017-07-15T23:01:44Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=606e320e472b486359cf7a44c488b29e717a3ac8'/>
<id>urn:sha1:606e320e472b486359cf7a44c488b29e717a3ac8</id>
<content type='text'>
These are due to (excessively?) fancy macro definitions in gmime-extra.h
</content>
</entry>
<entry>
<title>cli/crypto: treat failure to create a crypto context as fatal.</title>
<updated>2017-07-16T00:39:37Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2017-07-15T23:01:43Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=1fdc08d0ffab9b211861de5d148d0a79eae840bc'/>
<id>urn:sha1:1fdc08d0ffab9b211861de5d148d0a79eae840bc</id>
<content type='text'>
Silently ignoring signed/encrypted parts seems like the wrong idea,
and it also complicates future gmime-3.0 compatibility changes.
</content>
</entry>
<entry>
<title>cli: simplify mime node walk</title>
<updated>2017-03-10T11:55:15Z</updated>
<author>
<name>Jani Nikula</name>
<email>jani@nikula.org</email>
</author>
<published>2017-01-06T20:14:49Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=069362ee10d0af108c7d0a275bda1a78c4a49f27'/>
<id>urn:sha1:069362ee10d0af108c7d0a275bda1a78c4a49f27</id>
<content type='text'>
The function is more straighforward to read when it's clear that the
only non-NULL return is at one place. No functional changes.
</content>
</entry>
<entry>
<title>Use https instead of http where possible</title>
<updated>2016-06-05T11:32:17Z</updated>
<author>
<name>Daniel Kahn Gillmor</name>
<email>dkg@fifthhorseman.net</email>
</author>
<published>2016-06-02T16:26:14Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=6a833a6e83865f6999707cc30768d07e1351c2cb'/>
<id>urn:sha1:6a833a6e83865f6999707cc30768d07e1351c2cb</id>
<content type='text'>
Many of the external links found in the notmuch source can be resolved
using https instead of http.  This changeset addresses as many as i
could find, without touching the e-mail corpus or expected outputs
found in tests.
</content>
</entry>
<entry>
<title>cli/lib: remove support for GMime 2.4</title>
<updated>2015-08-26T23:01:45Z</updated>
<author>
<name>David Bremner</name>
<email>david@tethera.net</email>
</author>
<published>2015-08-16T15:33:21Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=005c2f0df17de8afdf9f67b923d26f2358236171'/>
<id>urn:sha1:005c2f0df17de8afdf9f67b923d26f2358236171</id>
<content type='text'>
It's becoming a maintenance burden to do anything things with the
crypto glue code twice, once for 2.4 and once for 2.6. I don't have
any 2.4 version available to test on my development machine anymore,
so the 2.4 specific code paths are likely not very well tested.
</content>
</entry>
<entry>
<title>cli: mime node: fix compiler warning when building against gmime 2.4</title>
<updated>2013-04-14T22:49:16Z</updated>
<author>
<name>Jani Nikula</name>
<email>jani@nikula.org</email>
</author>
<published>2013-04-06T11:47:43Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=d2c881867ea4858f4a4785af5ec5d4223e5e0257'/>
<id>urn:sha1:d2c881867ea4858f4a4785af5ec5d4223e5e0257</id>
<content type='text'>
commit d487ef9e58bcd193118f19f771d5ef3984616be5
Author: Jani Nikula &lt;jani@nikula.org&gt;
Date:   Sat Mar 30 15:53:16 2013 +0200

    cli: mime node: abstract decryption and signature verification

introduced a compiler warning, reported by Mark Walters, when building
against gmime 2.4:

mime-node.c:224:9: warning: assignment discards ‘const’ qualifier from
pointer target type [enabled by default]

Pass the non-const signature validity to the destructor to fix this.
</content>
</entry>
<entry>
<title>cli: mime node: abstract decryption and signature verification</title>
<updated>2013-04-01T19:39:33Z</updated>
<author>
<name>Jani Nikula</name>
<email>jani@nikula.org</email>
</author>
<published>2013-03-30T13:53:16Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=d487ef9e58bcd193118f19f771d5ef3984616be5'/>
<id>urn:sha1:d487ef9e58bcd193118f19f771d5ef3984616be5</id>
<content type='text'>
The code filled with #ifdef GMIME_ATLEAST_26 is difficult to
read. Abstract the decryption and signature verification into
functions, with separate implementations for GMime 2.4 and 2.6, to
clarify the code.

There should be no functional changes.
</content>
</entry>
<entry>
<title>Avoid potentially dereferencing a NULL pointer</title>
<updated>2012-09-27T15:52:34Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2012-09-24T15:21:20Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=b6b08e40b38b098e796c2846c150befc8cc2c350'/>
<id>urn:sha1:b6b08e40b38b098e796c2846c150befc8cc2c350</id>
<content type='text'>
GMIME_IS_MULTIPART and GMIME_IS_MESSAGE both handle NULL pointers
gracefully, but the G_OBJECT_TYPE used in the error handling block
dereferences it without checking it first.

Fix this by checking whether parent-&gt;part is valid.

Found using the clang static analyzer.

Signed-off-by: Justus Winter &lt;4winter@informatik.uni-hamburg.de&gt;
</content>
</entry>
</feed>
