unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
* [PATCH] fix notmuch-new bug when database path ends with a trailing /
@ 2009-11-22 16:19 Bart Trojanowski
  2009-11-23  3:38 ` Carl Worth
  0 siblings, 1 reply; 2+ messages in thread
From: Bart Trojanowski @ 2009-11-22 16:19 UTC (permalink / raw)
  To: notmuch

I configured my database.path with a trailing /, and after running notmuch
new every notmuch search would fail with error messages like this:

  Error opening /inbox/cur/1258565257.000211.mbox:2,S: No such file or directory

The actual bug was in the filename normalization for storage in the
database.  The database.path was removed from the full filename, but if
the database.path from the config file contained a trailing /, the
relative file name would retain an extra leading /... which made it look
like an absolute path after it was read out from the DB.

Signed-off-by: Bart Trojanowski <bart@jukie.net>
---
 lib/message.cc |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/lib/message.cc b/lib/message.cc
index 017c47b..1e325e2 100644
--- a/lib/message.cc
+++ b/lib/message.cc
@@ -411,10 +411,14 @@ _notmuch_message_set_filename (notmuch_message_t *message,
     db_path = notmuch_database_get_path (message->notmuch);
     db_path_len = strlen (db_path);
 
-    if (*s == '/' && strncmp (s, db_path, db_path_len) == 0
-	&& strlen (s) > db_path_len)
+    if (*s == '/' && strlen (s) > db_path_len
+	&& strncmp (s, db_path, db_path_len) == 0)
     {
-	s += db_path_len + 1;
+	s += db_path_len;
+	while (*s == '/') s++;
+
+	if (!*s)
+		INTERNAL_ERROR ("Message filename was same as db prefix.");
     }
 
     message->doc.set_data (s);
-- 
1.6.4.4.2.gc2f148

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] fix notmuch-new bug when database path ends with a trailing /
  2009-11-22 16:19 [PATCH] fix notmuch-new bug when database path ends with a trailing / Bart Trojanowski
@ 2009-11-23  3:38 ` Carl Worth
  0 siblings, 0 replies; 2+ messages in thread
From: Carl Worth @ 2009-11-23  3:38 UTC (permalink / raw)
  To: Bart Trojanowski, notmuch

On Sun, 22 Nov 2009 11:19:31 -0500, Bart Trojanowski <bart@jukie.net> wrote:
> The actual bug was in the filename normalization for storage in the
> database.  The database.path was removed from the full filename, but if
> the database.path from the config file contained a trailing /, the
> relative file name would retain an extra leading /... which made it look
> like an absolute path after it was read out from the DB.

Thanks for the fix, Bart! I've pushed this out now.

-Carl

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2009-11-23  3:38 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-22 16:19 [PATCH] fix notmuch-new bug when database path ends with a trailing / Bart Trojanowski
2009-11-23  3:38 ` Carl Worth

Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).