Bug#826843: Calls to notmuch_database_add_message() after notmuch_database_close...
authorLars Luthman <deb-bugs@larsluthman.net>
Thu, 9 Jun 2016 11:02:22 +0000 (13:02 +0200)
committerW. Trevor King <wking@tremily.us>
Sat, 20 Aug 2016 23:22:01 +0000 (16:22 -0700)
99/5cf33d5da1640bd2017694adaf1f1828c39c40 [new file with mode: 0644]

diff --git a/99/5cf33d5da1640bd2017694adaf1f1828c39c40 b/99/5cf33d5da1640bd2017694adaf1f1828c39c40
new file mode 100644 (file)
index 0000000..2d701cb
--- /dev/null
@@ -0,0 +1,234 @@
+Return-Path: <bounces+20160609-bremner=debian.org@tracker.debian.org>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+ by arlo.cworth.org (Postfix) with ESMTP id 1FD286DE01C2\r
+ for <notmuch@notmuchmail.org>; Thu,  9 Jun 2016 08:44:36 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at cworth.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -1.154\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-1.154 tagged_above=-999 required=5\r
+ tests=[AWL=-1.155, HEADER_FROM_DIFFERENT_DOMAINS=0.001]\r
+ autolearn=disabled\r
+Received: from arlo.cworth.org ([127.0.0.1])\r
+ by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024)\r
+ with ESMTP id 8_30yotZM4k9 for <notmuch@notmuchmail.org>;\r
+ Thu,  9 Jun 2016 08:44:27 -0700 (PDT)\r
+Received: from fethera.tethera.net (fethera.tethera.net [198.245.60.197])\r
+ by arlo.cworth.org (Postfix) with ESMTPS id A6EEC6DE01BE\r
+ for <notmuch@notmuchmail.org>; Thu,  9 Jun 2016 08:44:27 -0700 (PDT)\r
+Received: from remotemail by fethera.tethera.net with local (Exim 4.84)\r
+ (envelope-from <bounces+20160609-bremner=debian.org@tracker.debian.org>)\r
+ id 1bB27w-0003ly-4r\r
+ for notmuch@notmuchmail.org; Thu, 09 Jun 2016 11:44:12 -0400\r
+Received: (nullmailer pid 558 invoked by uid 1000);\r
+ Thu, 09 Jun 2016 15:44:21 -0000\r
+Resent-To: notmuch@notmuchmail.org\r
+Resent-From: David Bremner <david@tethera.net>\r
+Resent-Date: Thu, 09 Jun 2016 12:44:21 -0300\r
+Resent-Message-ID: <87wplyxt7u.fsf@tesseract.cs.unb.ca>\r
+Received: from mailly.debian.org ([2001:41b8:202:deb:6564:a62:52c3:4b72])\r
+ by fethera.tethera.net with esmtp (Exim 4.84)\r
+ (envelope-from <bounces+20160609-bremner=debian.org@tracker.debian.org>)\r
+ id 1bAxjp-0008T2-FK\r
+ for david@tethera.net; Thu, 09 Jun 2016 07:03:01 -0400\r
+Received: from ticharich.debian.org ([2001:41c8:1000:21::21:23])\r
+ from C=NA, ST=NA, L=Ankh Morpork, O=Debian SMTP, OU=Debian SMTP CA,\r
+ CN=ticharich.debian.org, EMAIL=hostmaster@ticharich.debian.org (verified)\r
+ by mailly.debian.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\r
+ (Exim 4.84_2)\r
+ (envelope-from <bounces+20160609-bremner=debian.org@tracker.debian.org>)\r
+ id 1bAxk0-0004GV-Nd\r
+ for david@tethera.net; Thu, 09 Jun 2016 11:03:12 +0000\r
+Received: from localhost ([::1] helo=ticharich.debian.org)\r
+ by ticharich.debian.org with esmtp (Exim 4.84_2)\r
+ (envelope-from <bounces+20160609-bremner=debian.org@tracker.debian.org>)\r
+ id 1bAxk0-00069c-DW\r
+ for david@tethera.net; Thu, 09 Jun 2016 11:03:12 +0000\r
+Received: from muffat.debian.org ([2607:f8f0:610:4000:6564:a62:ce0c:1392])\r
+ from C=NA, ST=NA, L=Ankh Morpork, O=Debian SMTP, OU=Debian SMTP CA,\r
+ CN=muffat.debian.org, EMAIL=hostmaster@muffat.debian.org (verified)\r
+ by ticharich.debian.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\r
+ (Exim 4.84_2) (envelope-from <debbugs@buxtehude.debian.org>)\r
+ id 1bAxk0-00069V-4O\r
+ for dispatch+notmuch@tracker.debian.org; Thu, 09 Jun 2016 11:03:12 +0000\r
+Received: from quantz.debian.org ([2001:41c8:1000:21::21:28])\r
+ from C=NA, ST=NA, L=Ankh Morpork, O=Debian SMTP, OU=Debian SMTP CA,\r
+ CN=quantz.debian.org, EMAIL=hostmaster@quantz.debian.org (verified)\r
+ by muffat.debian.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\r
+ (Exim 4.84_2) (envelope-from <debbugs@buxtehude.debian.org>)\r
+ id 1bAxjx-0005AY-PW\r
+ for dispatch+notmuch@tracker.debian.org; Thu, 09 Jun 2016 11:03:10 +0000\r
+Received: from qa by quantz.debian.org with local (Exim 4.84_2)\r
+ (envelope-from <debbugs@buxtehude.debian.org>) id 1bAxjw-0006ua-BG\r
+ for dispatch+notmuch@tracker.debian.org; Thu, 09 Jun 2016 11:03:08 +0000\r
+Received: from buxtehude.debian.org ([2607:f8f0:610:4000:2015:12:0:147])\r
+ from C=NA, ST=NA, L=Ankh Morpork, O=Debian SMTP, OU=Debian SMTP CA,\r
+ CN=buxtehude.debian.org, EMAIL=hostmaster@buxtehude.debian.org (verified)\r
+ by quantz.debian.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\r
+ (Exim 4.84_2) (envelope-from <debbugs@buxtehude.debian.org>)\r
+ id 1bAxjw-0006tk-4N\r
+ for notmuch@packages.qa.debian.org; Thu, 09 Jun 2016 11:03:08 +0000\r
+Received: from debbugs by buxtehude.debian.org with local (Exim 4.84_2)\r
+ (envelope-from <debbugs@buxtehude.debian.org>)\r
+ id 1bAxjt-0005Bk-Ec; Thu, 09 Jun 2016 11:03:05 +0000\r
+X-Loop: owner@bugs.debian.org\r
+Subject: Bug#826843: Calls to notmuch_database_add_message() after\r
+ notmuch_database_close() crash\r
+Reply-To: Lars Luthman <deb-bugs@larsluthman.net>, 826843@bugs.debian.org\r
+Also-Resent-From: Lars Luthman <deb-bugs@larsluthman.net>\r
+Also-Resent-To: debian-bugs-dist@lists.debian.org\r
+Also-Resent-CC: Carl Worth <cworth@debian.org>\r
+X-Loop: owner@bugs.debian.org\r
+Also-Resent-Date: Thu, 09 Jun 2016 11:03:01 +0000\r
+Also-Resent-Message-ID: <handler.826843.B.146547014919804@bugs.debian.org>\r
+X-Debian-PR-Message: report 826843\r
+X-Debian-PR-Package: libnotmuch-dev\r
+X-Debian-PR-Keywords: \r
+X-Debian-PR-Source: notmuch\r
+Received: via spool by submit@bugs.debian.org id=B.146547014919804\r
+ (code B); Thu, 09 Jun 2016 11:03:01 +0000\r
+Received: (at submit) by bugs.debian.org; 9 Jun 2016 11:02:29 +0000\r
+X-Spam-Bayes: score:0.0000 Tokens: new, 47; hammy, 150; neutral, 161; spammy,\r
+ 0. spammytokens: hammytokens:0.000-+--systemd, 0.000-+--deb8u1, \r
+ 0.000-+--H*UA:3.12.9-1, 0.000-+--H*x:3.12.9-1, 0.000-+--en_GButf8\r
+Received: from v-smtpgw2.han.skanova.net ([81.236.60.205])\r
+ by buxtehude.debian.org with esmtp (Exim 4.84_2)\r
+ (envelope-from <deb-bugs@larsluthman.net>) id 1bAxjJ-00058n-Da\r
+ for submit@bugs.debian.org; Thu, 09 Jun 2016 11:02:29 +0000\r
+Received: from miskatonic.local ([78.69.244.232]) by cmsmtp with SMTP\r
+ id Axj9bO3cdctqUAxjAb5kXm; Thu, 09 Jun 2016 13:02:21 +0200\r
+Message-ID: <1465470142.3501.10.camel@larsluthman.net>\r
+From: Lars Luthman <deb-bugs@larsluthman.net>\r
+To: submit@bugs.debian.org\r
+Date: Thu, 09 Jun 2016 13:02:22 +0200\r
+Content-Type: multipart/mixed; boundary="=-6lshnzaqf1KN2rKF0TKb"\r
+X-Mailer: Evolution 3.12.9-1+b1 \r
+Mime-Version: 1.0\r
+X-CMAE-Envelope: MS4wfMMdDsIM1l3Qa1f8AMdqkBLsZulSFkVnPILa/7bnKy7vEm4kePEgzC6NTWfUzgizPIZAc6sUB2evyOmtpQUgDjqXQ6LEQxTtw+vIUvUyHA7aLhnK00Hl\r
+ FQksKsJl/A76jQ8iymRFjr2C22qm20As/LrAUsbskpt9lKP8xDC8VLW511/i88tLX5zSWk/3fOrzaA==\r
+X-Loop: dispatch@tracker.debian.org\r
+X-Distro-Tracker-Package: notmuch\r
+X-Distro-Tracker-Keyword: bts\r
+X-Debian-Package: notmuch\r
+X-Debian: tracker.debian.org\r
+X-PTS-Package: notmuch\r
+X-PTS-Keyword: bts\r
+Precedence: list\r
+X-Mailman-Approved-At: Thu, 09 Jun 2016 09:50:52 -0700\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.20\r
+List-Id: "Use and development of the notmuch mail system."\r
+ <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <https://notmuchmail.org/mailman/options/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch/>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <https://notmuchmail.org/mailman/listinfo/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Thu, 09 Jun 2016 15:44:36 -0000\r
+\r
+\r
+--=-6lshnzaqf1KN2rKF0TKb\r
+Content-Type: text/plain; charset="UTF-8"\r
+Content-Transfer-Encoding: 7bit\r
+\r
+Package: libnotmuch-dev\r
+Version: 0.18.2-1\r
+Severity: important\r
+\r
+In the API documentation for notmuch_database_close() it says:\r
+\r
+ * After notmuch_database_close has been called, calls to other\r
+ * functions on objects derived from this database may either behave\r
+ * as if the database had not been closed (e.g., if the required data\r
+ * has been cached) or may fail with a\r
+ * NOTMUCH_STATUS_XAPIAN_EXCEPTION.\r
+\r
+However, if you call notmuch_database_close() on a database and then\r
+call notmuch_database_add_message(), it doesn't fail nicely with a\r
+NOTMUCH_STATUS_XAPIAN_EXCEPTION, it segfaults.\r
+\r
+This should either be fixed so it doesn't crash, as documented, or the\r
+documentation should be changed to describe which functions are unsafe\r
+to call after notmuch_database_close().\r
+\r
+I'm attaching a small C program to reproduce the bug. It crashes with\r
+the following backtrace:\r
+\r
+(gdb) bt\r
+#0  0xb71f3f27 in Xapian::WritableDatabase::begin_transaction(bool) ()\r
+   from /usr/lib/sse2/libxapian.so.22\r
+#1  0xb779480d in notmuch_database_begin_atomic ()\r
+   from /usr/lib/i386-linux-gnu/libnotmuch.so.3\r
+#2  0xb7794fa0 in notmuch_database_add_message ()\r
+   from /usr/lib/i386-linux-gnu/libnotmuch.so.3\r
+#3  0x080488d3 in add_new_email (db=0x82b5610, \r
+    filename=0x8048b51 "/new-mail-2@example.net:2,", content=0x8048b30\r
+"hello")\r
+    at notmuchcrash.c:27\r
+#4  0x080489d7 in main () at notmuchcrash.c:52\r
+\r
+\r
+Installed version of libxapian22: 1.2.19-1+deb8u1\r
+\r
+\r
+-- System Information:\r
+Debian Release: 8.5\r
+  APT prefers stable-updates\r
+  APT policy: (500, 'stable-updates'), (500, 'stable')\r
+Architecture: i386 (i686)\r
+\r
+Kernel: Linux 3.16.0-4-686-pae (SMP w/2 CPU cores)\r
+Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)\r
+Shell: /bin/sh linked to /bin/dash\r
+Init: systemd (via /run/systemd/system)\r
+\r
+Versions of packages libnotmuch-dev depends on:\r
+ii  libnotmuch3  0.18.2-1\r
+\r
+libnotmuch-dev recommends no packages.\r
+\r
+libnotmuch-dev suggests no packages.\r
+\r
+-- no debconf information\r
+\r
+--=-6lshnzaqf1KN2rKF0TKb\r
+Content-Disposition: attachment; filename="notmuchcrash.c"\r
+Content-Type: text/x-csrc; name="notmuchcrash.c"; charset="UTF-8"\r
+Content-Transfer-Encoding: base64\r
+\r
+LyogQ29tcGlsZSB3aXRoOgogICBnY2MgLWcgLXN0ZD1jOTkgLVdhbGwgLVdlcnJvciAtbyBub3Rt\r
+dWNoY3Jhc2ggLWxub3RtdWNoIG5vdG11Y2hjcmFzaC5jCiovCgojZGVmaW5lIF9QT1NJWF9DX1NP\r
+VVJDRSAyMDA4MDlMCgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5j\r
+bHVkZSA8c3RyaW5nLmg+CgojaW5jbHVkZSA8bm90bXVjaC5oPgoKCiNkZWZpbmUgRElFKG1zZykg\r
+ZG8geyBwZXJyb3IobXNnKTsgZXhpdChFWElUX0ZBSUxVUkUpOyB9IHdoaWxlICgwKQoKCnZvaWQg\r
+YWRkX25ld19lbWFpbChub3RtdWNoX2RhdGFiYXNlX3QqIGRiLAogICAgICAgICAgICAgICAgICAg\r
+Y2hhciBjb25zdCogZmlsZW5hbWUsIGNoYXIgY29uc3QqIGNvbnRlbnQpIHsKICBjaGFyIG1haWxf\r
+cGF0aFs2NF07CiAgc3RyY3B5KG1haWxfcGF0aCwgbm90bXVjaF9kYXRhYmFzZV9nZXRfcGF0aChk\r
+YikpOwogIHN0cmNhdChtYWlsX3BhdGgsIGZpbGVuYW1lKTsKICBGSUxFKiBtZiA9IGZvcGVuKG1h\r
+aWxfcGF0aCwgIncrIik7CiAgaWYgKCFtZikgRElFKCJGYWlsZWQgdG8gb3BlbiBtYWlsIGZpbGUi\r
+KTsKICBpZiAoZndyaXRlKGNvbnRlbnQsIHN0cmxlbihjb250ZW50KSwgMSwgbWYpICE9IDEpCiAg\r
+ICBESUUoIkZhaWxlZCB0byB3cml0ZSBtYWlsIik7CiAgaWYgKGZjbG9zZShtZikpIERJRSgiRmFp\r
+bGVkIHRvIGNsb3NlIGZpbGUiKTsKICBpZiAobm90bXVjaF9kYXRhYmFzZV9hZGRfbWVzc2FnZShk\r
+YiwgbWFpbF9wYXRoLCBOVUxMKSAhPQogICAgICBOT1RNVUNIX1NUQVRVU19GSUxFX05PVF9FTUFJ\r
+TCkKICAgIERJRSgiU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2hlbiBhZGRpbmcgdGhlIGVtYWlsIik7\r
+Cn0KCgppbnQgbWFpbigpIHsKCiAgLyogQ3JlYXRlIG5ldyBkYXRhYmFzZS4gKi8KICBjaGFyIGRi\r
+X3BhdGhbMzJdOwogIHN0cmNweShkYl9wYXRoLCAiL3RtcC9ub3RtdWNoY3Jhc2gtWFhYWFhYIik7\r
+CiAgaWYgKCFta2R0ZW1wKGRiX3BhdGgpKSBESUUoIkZhaWxlZCB0byBjcmVhdGUgdW5pcXVlIGRp\r
+cmVjdG9yeSIpOwogIG5vdG11Y2hfZGF0YWJhc2VfdCogZGI7CiAgaWYgKG5vdG11Y2hfZGF0YWJh\r
+c2VfY3JlYXRlKGRiX3BhdGgsICZkYikpIERJRSgiRmFpbGVkIHRvIGNyZWF0ZSBkYXRhYmFzZSIp\r
+OwoKICAvKiBUaGlzIGRvZXNuJ3QgaGF2ZSB0byBiZSBhIHZhbGlkIGVtYWlsLCBpdCB3aWxsIGNy\r
+YXNoIGVpdGhlciB3YXkuICovCiAgY2hhciBjb25zdCogbWFpbF9kYXRhID0gImhlbGxvIjsKCiAg\r
+LyogRmlyc3QsIHRyeSB0byBhZGQgYSBmaWxlIGJlZm9yZSBjbG9zaW5nLiAqLwogIGFkZF9uZXdf\r
+ZW1haWwoZGIsICIvbmV3LW1haWwtMUBleGFtcGxlLm5ldDoyLCIsIG1haWxfZGF0YSk7CiAgCiAg\r
+LyogQ2xvc2UgdGhlIGRhdGFiYXNlLiAqLwogIG5vdG11Y2hfZGF0YWJhc2VfY2xvc2UoZGIpOwoK\r
+ICAvKiBOb3cgdHJ5IGFnYWluLiBUaGlzIHdpbGwgY3Jhc2guICovCiAgYWRkX25ld19lbWFpbChk\r
+YiwgIi9uZXctbWFpbC0yQGV4YW1wbGUubmV0OjIsIiwgbWFpbF9kYXRhKTsKICAKICByZXR1cm4g\r
+MDsKfQo=\r
+\r
+\r
+--=-6lshnzaqf1KN2rKF0TKb--\r
+\r