unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
* preliminary FreeBSD support
@ 2009-11-17 19:36 Alex Botero-Lowry
  2009-11-17 20:19 ` Carl Worth
  0 siblings, 1 reply; 2+ messages in thread
From: Alex Botero-Lowry @ 2009-11-17 19:36 UTC (permalink / raw)
  To: notmuch


[-- Attachment #1.1: Type: text/plain, Size: 645 bytes --]

I saw the announcement this morning, and was very excited, as I had been
hoping sup would be turned into a library,
since I like the concept more than the UI (I'd rather an emacs interface).

I did a preliminary compile which worked out fine, but
sysconf(_SC_SC_GETPW_R_SIZE_MAX) returns -1 on
FreeBSD, so notmuch_config_open segfaulted.

Attached is a patch that supplies a default buffer size of 64 in cases where
-1 is returned.

http://www.opengroup.org/austin/docs/austin_328.txt - seems to indicate this
is acceptable behavior,
and http://mail-index.netbsd.org/pkgsrc-bugs/2006/06/07/msg016808.htmlspecifically
uses 64 as the
buffer size.

[-- Attachment #1.2: Type: text/html, Size: 844 bytes --]

[-- Attachment #2: 0001-Deal-with-situation-where-sysconf-_SC_GETPW_R_SIZE_M.patch --]
[-- Type: application/octet-stream, Size: 1051 bytes --]

From e3bc4bbd7b9d0d086816ab5f8f2d6ffea1dd3ea4 Mon Sep 17 00:00:00 2001
From: Alexander Botero-Lowry <alex.boterolowry@gmail.com>
Date: Tue, 17 Nov 2009 11:30:39 -0800
Subject: [PATCH] Deal with situation where sysconf(_SC_GETPW_R_SIZE_MAX) returns -1

---
 notmuch-config.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/notmuch-config.c b/notmuch-config.c
index 248149c..e7220d8 100644
--- a/notmuch-config.c
+++ b/notmuch-config.c
@@ -77,6 +77,7 @@ static char *
 get_name_from_passwd_file (void *ctx)
 {
     long pw_buf_size = sysconf(_SC_GETPW_R_SIZE_MAX);
+    if (pw_buf_size == -1) pw_buf_size = 64;
     char *pw_buf = talloc_zero_size (ctx, pw_buf_size);
     struct passwd passwd, *ignored;
     char *name;
@@ -101,6 +102,7 @@ static char *
 get_username_from_passwd_file (void *ctx)
 {
     long pw_buf_size = sysconf(_SC_GETPW_R_SIZE_MAX);
+    if (pw_buf_size == -1) pw_buf_size = 64;
     char *pw_buf = talloc_zero_size (ctx, pw_buf_size);
     struct passwd passwd, *ignored;
     char *name;
-- 
1.6.5.2


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

* Re: preliminary FreeBSD support
  2009-11-17 19:36 preliminary FreeBSD support Alex Botero-Lowry
@ 2009-11-17 20:19 ` Carl Worth
  0 siblings, 0 replies; 2+ messages in thread
From: Carl Worth @ 2009-11-17 20:19 UTC (permalink / raw)
  To: Alex Botero-Lowry, notmuch

On Tue, 17 Nov 2009 11:36:14 -0800, Alex Botero-Lowry <alex.boterolowry@gmail.com> wrote:
> I saw the announcement this morning, and was very excited, as I had been
> hoping sup would be turned into a library,
> since I like the concept more than the UI (I'd rather an emacs interface).

Hi Alex,

That's great! It's good to hear that there are like-minded people out
there. I hope that Notmuch will be useful for you.

> I did a preliminary compile which worked out fine, but
> sysconf(_SC_SC_GETPW_R_SIZE_MAX) returns -1 on
> FreeBSD, so notmuch_config_open segfaulted.
> 
> Attached is a patch that supplies a default buffer size of 64 in cases where
> -1 is returned.

Thanks for the patch. As we discussed in IRC[*], we should probably
do the correct thing and check for ERANGE and loop as necessary (even if
sysconf returns a positive value). Example code here:

http://www.opengroup.org/austin/docs/austin_328.txt

-Carl

[*] #notmuch on irc.freenode.net for those who didn't just guess that
already, (and I'll add that to the website soon).

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

end of thread, other threads:[~2009-11-17 20:19 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-17 19:36 preliminary FreeBSD support Alex Botero-Lowry
2009-11-17 20:19 ` 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).