diff --git a/agent/ChangeLog b/agent/ChangeLog index 83692d461..38ebd0f17 100644 --- a/agent/ChangeLog +++ b/agent/ChangeLog @@ -1,3 +1,15 @@ +2006-11-09 Werner Koch + + * gpg-agent.c (main): In detached mode connect standard + descriptors to /dev/null. + + * trustlist.c (read_trustfiles): Make sure not to pass a zero size + to realloc as the C standards says that this behaves like free. + +2006-11-06 Werner Koch + + * protect-tool.c (my_strusage): Fixed typo. + 2006-10-23 Werner Koch * gpg-agent.c (main): New command --gpgconf-test. diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c index 5201be8d5..979fa3564 100644 --- a/agent/gpg-agent.c +++ b/agent/gpg-agent.c @@ -1007,7 +1007,16 @@ main (int argc, char **argv ) for (i=0; i <= 2; i++) { if (!log_test_fd (i) && i != fd ) - close (i); + { + if ( ! close (i) + && open ("/dev/null", i? O_WRONLY : O_RDONLY) == -1) + { + log_error ("failed to open `%s': %s\n", + "/dev/null", strerror (errno)); + cleanup (); + exit (1); + } + } } if (setsid() == -1) { diff --git a/agent/protect-tool.c b/agent/protect-tool.c index 23f1d9336..4a0e53d3f 100644 --- a/agent/protect-tool.c +++ b/agent/protect-tool.c @@ -145,7 +145,7 @@ my_strusage (int level) case 1: case 40: p = _("Usage: gpg-protect-tool [options] (-h for help)\n"); break; - case 41: p = _("Syntax: gpg-protect-tool [options] [args]]\n" + case 41: p = _("Syntax: gpg-protect-tool [options] [args]\n" "Secret key maintenance tool\n"); break; diff --git a/agent/trustlist.c b/agent/trustlist.c index 51e655a06..0034525ad 100644 --- a/agent/trustlist.c +++ b/agent/trustlist.c @@ -317,8 +317,7 @@ read_trustfiles (void) } /* Fixme: we should drop duplicates and sort the table. */ - - ti = xtryrealloc (table, tableidx * sizeof *table); + ti = xtryrealloc (table, (tableidx?tableidx:1) * sizeof *table); if (!ti) { xfree (table);