From 138bf2dc1552fe8b8a1da6edcbd9fdcb747a73b9 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Tue, 27 May 2008 12:03:50 +0000 Subject: [PATCH] Fixed segv in gpg-agent (command marktrusted). Replaced almost all free by xfree. Translation fixes. --- NEWS | 6 +++- agent/ChangeLog | 27 +++++++++++++++++ agent/call-pinentry.c | 4 +-- agent/command-ssh.c | 4 +-- agent/command.c | 30 +++++++++--------- agent/divert-scd.c | 4 +-- agent/gpg-agent.c | 64 ++++++++++++++++++++++----------------- agent/preset-passphrase.c | 4 +-- agent/trustlist.c | 18 ++++++----- agent/w32main.c | 4 +-- autogen.sh | 2 +- common/ChangeLog | 10 ++++++ common/asshelp.c | 10 +++--- common/homedir.c | 6 ++++ common/i18n.c | 2 ++ common/util.h | 2 ++ jnlib/ChangeLog | 4 +++ jnlib/argparse.c | 7 ++++- po/ChangeLog | 6 ++++ po/be.po | 2 +- po/ca.po | 2 +- po/cs.po | 2 +- po/da.po | 2 +- po/de.po | 38 +++++++++++------------ po/el.po | 2 +- po/eo.po | 2 +- po/es.po | 2 +- po/et.po | 2 +- po/fi.po | 2 +- po/fr.po | 2 +- po/gl.po | 2 +- po/hu.po | 2 +- po/id.po | 2 +- po/it.po | 6 ++-- po/ja.po | 2 +- po/nb.po | 2 +- po/pl.po | 2 +- po/pt.po | 2 +- po/pt_BR.po | 2 +- po/ro.po | 2 +- po/ru.po | 2 +- po/sk.po | 2 +- po/sv.po | 2 +- po/tr.po | 2 +- po/zh_CN.po | 2 +- po/zh_TW.po | 2 +- 46 files changed, 194 insertions(+), 114 deletions(-) diff --git a/NEWS b/NEWS index b70005342..81bb3dae8 100644 --- a/NEWS +++ b/NEWS @@ -7,12 +7,16 @@ Noteworthy changes in version 2.0.10 (unreleased) * New mechanisms "local" and "nodefault" for --auto-key-locate [gpg]. Fixed a few problems with this option. - * [W32] Initialize the socket subsystem for all keyserver helpers. + * [W32] Initialized the socket subsystem for all keyserver helpers. * New gpg2 command --locate-keys. * New gpg2 options --with-sig-list and --with-sig-check. + * Made gpgsm's --output option work with --export-secret-key-p12. + + * gpg-connect-agent accepts commands given as command line arguments. + Noteworthy changes in version 2.0.9 (2008-03-26) ------------------------------------------------ diff --git a/agent/ChangeLog b/agent/ChangeLog index d48d13a7e..4d72a5a58 100644 --- a/agent/ChangeLog +++ b/agent/ChangeLog @@ -1,3 +1,30 @@ +2008-05-27 Werner Koch + + * trustlist.c (insert_colons): Fix stupidly wrong allocation + computation. + +2008-05-26 Werner Koch + + * gpg-agent.c (main): Re-initialize default assuan log stream if a + log file is used. + + * trustlist.c (agent_marktrusted): Use xtryasprintf and xfree. + + * gpg-agent.c (main, agent_deinit_default_ctrl): Always use xfree + because our asprintf is mapped to an xmalloc style function in + util.h. Replace xtrdup by xtrystrdup. + * w32main.c (build_argv): Ditto. + * preset-passphrase.c (preset_passphrase): Ditto. + * divert-scd.c (ask_for_card): Ditto. + * command.c (option_handler): Ditto. + * command-ssh.c (ssh_handler_request_identities): Ditto. + * call-pinentry.c (start_pinentry): Ditto. + + * gpg-agent.c (start_connection_thread) + (start_connection_thread_ssh): Use pth_thread_id for useful output + under W32. + (pth_thread_id) [!PTH_HAVE_PTH_THREAD_ID]: New. + 2008-03-17 Werner Koch * agent.h (agent_inq_pinentry_launched): New prototype. diff --git a/agent/call-pinentry.c b/agent/call-pinentry.c index 6ae31030d..ea18d43dd 100644 --- a/agent/call-pinentry.c +++ b/agent/call-pinentry.c @@ -319,7 +319,7 @@ start_pinentry (ctrl_t ctrl) return unlock_pinentry (out_of_core ()); rc = assuan_transact (entry_ctx, optstr, NULL, NULL, NULL, NULL, NULL, NULL); - free (optstr); + xfree (optstr); if (rc) return unlock_pinentry (rc); } @@ -373,7 +373,7 @@ start_pinentry (ctrl_t ctrl) { assuan_transact (entry_ctx, optstr, NULL, NULL, NULL, NULL, NULL, NULL); - free (optstr); + xfree (optstr); } } diff --git a/agent/command-ssh.c b/agent/command-ssh.c index 9e2a57d6f..527b9e2aa 100644 --- a/agent/command-ssh.c +++ b/agent/command-ssh.c @@ -1960,7 +1960,7 @@ ssh_handler_request_identities (ctrl_t ctrl, if (ctrl_fp) fclose (ctrl_fp); - free (key_directory); + xfree (key_directory); xfree (key_path); xfree (buffer); xfree (key_type); @@ -2430,7 +2430,7 @@ ssh_identity_register (ctrl_t ctrl, gcry_sexp_t key, int ttl) xfree (pi); xfree (buffer); xfree (comment); - free (description); /* (asprintf allocated, thus regular free.) */ + xfree (description); return err; } diff --git a/agent/command.c b/agent/command.c index 720272904..92e12e22c 100644 --- a/agent/command.c +++ b/agent/command.c @@ -1422,8 +1422,8 @@ option_handler (assuan_context_t ctx, const char *key, const char *value) if (!strcmp (key, "display")) { if (ctrl->display) - free (ctrl->display); - ctrl->display = strdup (value); + xfree (ctrl->display); + ctrl->display = xtrystrdup (value); if (!ctrl->display) return out_of_core (); } @@ -1432,8 +1432,8 @@ option_handler (assuan_context_t ctx, const char *key, const char *value) if (!opt.keep_tty) { if (ctrl->ttyname) - free (ctrl->ttyname); - ctrl->ttyname = strdup (value); + xfree (ctrl->ttyname); + ctrl->ttyname = xtrystrdup (value); if (!ctrl->ttyname) return out_of_core (); } @@ -1443,8 +1443,8 @@ option_handler (assuan_context_t ctx, const char *key, const char *value) if (!opt.keep_tty) { if (ctrl->ttytype) - free (ctrl->ttytype); - ctrl->ttytype = strdup (value); + xfree (ctrl->ttytype); + ctrl->ttytype = xtrystrdup (value); if (!ctrl->ttytype) return out_of_core (); } @@ -1452,32 +1452,32 @@ option_handler (assuan_context_t ctx, const char *key, const char *value) else if (!strcmp (key, "lc-ctype")) { if (ctrl->lc_ctype) - free (ctrl->lc_ctype); - ctrl->lc_ctype = strdup (value); + xfree (ctrl->lc_ctype); + ctrl->lc_ctype = xtrystrdup (value); if (!ctrl->lc_ctype) return out_of_core (); } else if (!strcmp (key, "lc-messages")) { if (ctrl->lc_messages) - free (ctrl->lc_messages); - ctrl->lc_messages = strdup (value); + xfree (ctrl->lc_messages); + ctrl->lc_messages = xtrystrdup (value); if (!ctrl->lc_messages) return out_of_core (); } else if (!strcmp (key, "xauthority")) { if (ctrl->xauthority) - free (ctrl->xauthority); - ctrl->xauthority = strdup (value); + xfree (ctrl->xauthority); + ctrl->xauthority = xtrystrdup (value); if (!ctrl->xauthority) return out_of_core (); } else if (!strcmp (key, "pinentry-user-data")) { if (ctrl->pinentry_user_data) - free (ctrl->pinentry_user_data); - ctrl->pinentry_user_data = strdup (value); + xfree (ctrl->pinentry_user_data); + ctrl->pinentry_user_data = xtrystrdup (value); if (!ctrl->pinentry_user_data) return out_of_core (); } @@ -1515,7 +1515,7 @@ io_monitor (assuan_context_t ctx, int direction, const char *line, size_t linelen) { ctrl_t ctrl = assuan_get_pointer (ctx); - + /* Note that we only check for the uppercase name. This allows to see the logging for debugging if using a non-upercase command name. */ diff --git a/agent/divert-scd.c b/agent/divert-scd.c index 25207331f..eac3b59c3 100644 --- a/agent/divert-scd.c +++ b/agent/divert-scd.c @@ -120,7 +120,7 @@ ask_for_card (ctrl_t ctrl, const unsigned char *shadow_info, char **r_kid) else { rc = agent_get_confirmation (ctrl, desc, NULL, NULL); - free (desc); + xfree (desc); } } if (rc) @@ -293,7 +293,7 @@ getpin_cb (void *opaque, const char *info, char *buf, size_t maxbuf) info? "')":"") < 0) desc = NULL; rc = agent_askpin (ctrl, desc?desc:info, prompt, NULL, pi); - free (desc); + xfree (desc); } if (!rc) diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c index 5ac951c23..dc13c9908 100644 --- a/agent/gpg-agent.c +++ b/agent/gpg-agent.c @@ -263,6 +263,13 @@ static int fixed_gcry_pth_init (void) } +#ifndef PTH_HAVE_PTH_THREAD_ID +static unsigned long pth_thread_id (void) +{ + return (unsigned long)pth_self (); +} +#endif + /* @@ -840,6 +847,7 @@ main (int argc, char **argv ) |JNLIB_LOG_WITH_TIME |JNLIB_LOG_WITH_PID)); current_logfile = xstrdup (logfile); + assuan_set_assuan_log_stream (log_get_stream ()); } /* Make sure that we have a default ttyname. */ @@ -1034,11 +1042,11 @@ main (int argc, char **argv ) printf ("%s; export SSH_AGENT_PID;\n", infostr_ssh_pid); } } - free (infostr); /* (Note that a vanilla free is here correct.) */ + xfree (infostr); if (opt.ssh_support) { - free (infostr_ssh_sock); - free (infostr_ssh_pid); + xfree (infostr_ssh_sock); + xfree (infostr_ssh_pid); } exit (0); } @@ -1132,31 +1140,33 @@ agent_init_default_ctrl (ctrl_t ctrl) and the request will fail anyway shortly after this initialization. */ if (ctrl->display) - free (ctrl->display); - ctrl->display = default_display? strdup (default_display) : NULL; + xfree (ctrl->display); + ctrl->display = default_display? xtrystrdup (default_display) : NULL; if (ctrl->ttyname) - free (ctrl->ttyname); - ctrl->ttyname = default_ttyname? strdup (default_ttyname) : NULL; + xfree (ctrl->ttyname); + ctrl->ttyname = default_ttyname? xtrystrdup (default_ttyname) : NULL; if (ctrl->ttytype) - free (ctrl->ttytype); - ctrl->ttytype = default_ttytype? strdup (default_ttytype) : NULL; + xfree (ctrl->ttytype); + ctrl->ttytype = default_ttytype? xtrystrdup (default_ttytype) : NULL; if (ctrl->lc_ctype) - free (ctrl->lc_ctype); - ctrl->lc_ctype = default_lc_ctype? strdup (default_lc_ctype) : NULL; + xfree (ctrl->lc_ctype); + ctrl->lc_ctype = default_lc_ctype? xtrystrdup (default_lc_ctype) : NULL; if (ctrl->lc_messages) - free (ctrl->lc_messages); - ctrl->lc_messages = default_lc_messages? strdup (default_lc_messages) : NULL; + xfree (ctrl->lc_messages); + ctrl->lc_messages = default_lc_messages? xtrystrdup (default_lc_messages) + /**/ : NULL; if (ctrl->xauthority) - free (ctrl->xauthority); - ctrl->xauthority = default_xauthority? strdup (default_xauthority) : NULL; + xfree (ctrl->xauthority); + ctrl->xauthority = default_xauthority? xtrystrdup (default_xauthority) + /**/: NULL; if (ctrl->pinentry_user_data) - free (ctrl->pinentry_user_data); + xfree (ctrl->pinentry_user_data); ctrl->pinentry_user_data = NULL; } @@ -1165,19 +1175,19 @@ static void agent_deinit_default_ctrl (ctrl_t ctrl) { if (ctrl->display) - free (ctrl->display); + xfree (ctrl->display); if (ctrl->ttyname) - free (ctrl->ttyname); + xfree (ctrl->ttyname); if (ctrl->ttytype) - free (ctrl->ttytype); + xfree (ctrl->ttytype); if (ctrl->lc_ctype) - free (ctrl->lc_ctype); + xfree (ctrl->lc_ctype); if (ctrl->lc_messages) - free (ctrl->lc_messages); + xfree (ctrl->lc_messages); if (ctrl->xauthority) - free (ctrl->xauthority); + xfree (ctrl->xauthority); if (ctrl->pinentry_user_data) - free (ctrl->pinentry_user_data); + xfree (ctrl->pinentry_user_data); } /* Reread parts of the configuration. Note, that this function is @@ -1622,12 +1632,12 @@ start_connection_thread (void *arg) agent_init_default_ctrl (ctrl); if (opt.verbose) log_info (_("handler 0x%lx for fd %d started\n"), - (long)pth_self (), FD2INT(ctrl->thread_startup.fd)); + pth_thread_id (), FD2INT(ctrl->thread_startup.fd)); start_command_handler (ctrl, GNUPG_INVALID_FD, ctrl->thread_startup.fd); if (opt.verbose) log_info (_("handler 0x%lx for fd %d terminated\n"), - (long)pth_self (), FD2INT(ctrl->thread_startup.fd)); + pth_thread_id (), FD2INT(ctrl->thread_startup.fd)); agent_deinit_default_ctrl (ctrl); xfree (ctrl); @@ -1647,12 +1657,12 @@ start_connection_thread_ssh (void *arg) agent_init_default_ctrl (ctrl); if (opt.verbose) log_info (_("ssh handler 0x%lx for fd %d started\n"), - (long)pth_self (), FD2INT(ctrl->thread_startup.fd)); + pth_thread_id (), FD2INT(ctrl->thread_startup.fd)); start_command_handler_ssh (ctrl, ctrl->thread_startup.fd); if (opt.verbose) log_info (_("ssh handler 0x%lx for fd %d terminated\n"), - (long)pth_self (), FD2INT(ctrl->thread_startup.fd)); + pth_thread_id (), FD2INT(ctrl->thread_startup.fd)); agent_deinit_default_ctrl (ctrl); xfree (ctrl); diff --git a/agent/preset-passphrase.c b/agent/preset-passphrase.c index dbb8025b1..42c7d6c95 100644 --- a/agent/preset-passphrase.c +++ b/agent/preset-passphrase.c @@ -205,7 +205,7 @@ preset_passphrase (const char *keygrip) } wipememory (line, strlen (line)); - free (line); + xfree (line); } @@ -222,7 +222,7 @@ forget_passphrase (const char *keygrip) gpg_strerror (gpg_error_from_syserror ())); return; } - free (line); + xfree (line); } diff --git a/agent/trustlist.c b/agent/trustlist.c index a154da899..027dec03e 100644 --- a/agent/trustlist.c +++ b/agent/trustlist.c @@ -463,8 +463,9 @@ insert_colons (const char *string) { char *buffer, *p; size_t n = strlen (string); + size_t nnew = n + (n+1)/2; - p = buffer = xtrymalloc ( n + (n+2)/3 + 1 ); + p = buffer = xtrymalloc ( nnew + 1 ); if (!buffer) return NULL; while (*string) @@ -478,6 +479,7 @@ insert_colons (const char *string) } } *p = 0; + assert (strlen (buffer) <= nnew); return buffer; } @@ -526,7 +528,7 @@ agent_marktrusted (ctrl_t ctrl, const char *name, const char *fpr, int flag) fprformatted = insert_colons (fpr); if (!fprformatted) return out_of_core (); - if (asprintf (&desc, + desc = xtryasprintf ( /* TRANSLATORS: This prompt is shown by the Pinentry and has one special property: A "%%0A" is used by Pinentry to insert a line break. The double @@ -539,7 +541,8 @@ agent_marktrusted (ctrl_t ctrl, const char *name, const char *fpr, int flag) _("Please verify that the certificate identified as:%%0A" " \"%s\"%%0A" "has the fingerprint:%%0A" - " %s"), name, fprformatted) < 0 ) + " %s"), name, fprformatted); + if (!desc) { xfree (fprformatted); return out_of_core (); @@ -549,7 +552,7 @@ agent_marktrusted (ctrl_t ctrl, const char *name, const char *fpr, int flag) be hit if the fingerprint matches the one of the CA. The other button is "the default "Cancel" of the Pinentry. */ err = agent_get_confirmation (ctrl, desc, _("Correct"), NULL); - free (desc); + xfree (desc); /* If the user did not confirmed this, we return cancel here so that gpgsm may stop asking further questions. We won't do this for the second question of course. */ @@ -562,7 +565,7 @@ agent_marktrusted (ctrl_t ctrl, const char *name, const char *fpr, int flag) - if (asprintf (&desc, + desc = xtryasprintf ( /* TRANSLATORS: This prompt is shown by the Pinentry and has one special property: A "%%0A" is used by Pinentry to insert a line break. The double @@ -574,14 +577,15 @@ agent_marktrusted (ctrl_t ctrl, const char *name, const char *fpr, int flag) _("Do you ultimately trust%%0A" " \"%s\"%%0A" "to correctly certify user certificates?"), - name) < 0 ) + name); + if (!desc) { xfree (fprformatted); return out_of_core (); } err = agent_get_confirmation (ctrl, desc, _("Yes"), _("No")); - free (desc); + xfree (desc); if (err) { xfree (fprformatted); diff --git a/agent/w32main.c b/agent/w32main.c index bcdf340d5..9fc3abbef 100644 --- a/agent/w32main.c +++ b/agent/w32main.c @@ -92,10 +92,10 @@ build_argv (char *cmdline_arg, int reserved) } } - argv = malloc (argc * sizeof *argv); + argv = xtrymalloc (argc * sizeof *argv); if (!argv) { - free (cmdline); + xfree (cmdline); return NULL; } diff --git a/autogen.sh b/autogen.sh index bc60782de..7548603e5 100755 --- a/autogen.sh +++ b/autogen.sh @@ -93,7 +93,7 @@ if test "$1" = "--build-w32"; then --with-zlib=${w32root} \ --with-regex=${w32root} \ --with-pth-prefix=${w32root} \ - --with-adns=${w32root} + --with-adns=${w32root} \ --without-included-gettext "$@" rc=$? exit $rc diff --git a/common/ChangeLog b/common/ChangeLog index 943b9f033..860d3cb69 100644 --- a/common/ChangeLog +++ b/common/ChangeLog @@ -1,3 +1,13 @@ +2008-05-26 Werner Koch + + * asshelp.c (send_one_option, send_pinentry_environment): use + xfree and xtrystrdup. + + * i18n.c (i18n_switchto_utf8) [USE_SIMPLE_GETTEXT]: Return NULL. + + * homedir.c (gnupg_module_name): Add + GNUPG_MODULE_NAME_CONNECT_AGENT and GNUPG_MODULE_NAME_GPGCONF. + 2008-04-21 Werner Koch * http.c (http_wait_response) [W32]: Use DuplicateHandle because diff --git a/common/asshelp.c b/common/asshelp.c index 8274d88a7..99da71a22 100644 --- a/common/asshelp.c +++ b/common/asshelp.c @@ -49,7 +49,7 @@ send_one_option (assuan_context_t ctx, gpg_err_source_t errsource, else { err = assuan_transact (ctx, optstr, NULL, NULL, NULL, NULL, NULL, NULL); - free (optstr); + xfree (optstr); } return err; @@ -119,7 +119,7 @@ send_pinentry_environment (assuan_context_t ctx, old_lc = setlocale (LC_CTYPE, NULL); if (old_lc) { - old_lc = strdup (old_lc); + old_lc = xtrystrdup (old_lc); if (!old_lc) return gpg_error_from_syserror (); } @@ -134,7 +134,7 @@ send_pinentry_environment (assuan_context_t ctx, if (old_lc) { setlocale (LC_CTYPE, old_lc); - free (old_lc); + xfree (old_lc); } #endif if (err) @@ -145,7 +145,7 @@ send_pinentry_environment (assuan_context_t ctx, old_lc = setlocale (LC_MESSAGES, NULL); if (old_lc) { - old_lc = strdup (old_lc); + old_lc = xtrystrdup (old_lc); if (!old_lc) return gpg_error_from_syserror (); } @@ -160,7 +160,7 @@ send_pinentry_environment (assuan_context_t ctx, if (old_lc) { setlocale (LC_MESSAGES, old_lc); - free (old_lc); + xfree (old_lc); } #endif if (err) diff --git a/common/homedir.c b/common/homedir.c index 6f1b49c21..eb1e5025a 100644 --- a/common/homedir.c +++ b/common/homedir.c @@ -383,6 +383,12 @@ gnupg_module_name (int which) case GNUPG_MODULE_NAME_GPG: X(bindir, "gpg2"); + case GNUPG_MODULE_NAME_CONNECT_AGENT: + X(bindir, "gpg-connect-agent"); + + case GNUPG_MODULE_NAME_GPGCONF: + X(bindir, "gpgconf"); + default: BUG (); } diff --git a/common/i18n.c b/common/i18n.c index 7db8e20c5..daa147faa 100644 --- a/common/i18n.c +++ b/common/i18n.c @@ -52,6 +52,7 @@ i18n_switchto_utf8 (void) { #ifdef USE_SIMPLE_GETTEXT gettext_select_utf8 (1); + return NULL; #elif defined(ENABLE_NLS) char *orig_codeset = bind_textdomain_codeset (PACKAGE_GT, NULL); # ifdef HAVE_LANGINFO_CODESET @@ -81,6 +82,7 @@ void i18n_switchback (char *saved_codeset) { #ifdef USE_SIMPLE_GETTEXT + (void)saved_codeset; gettext_select_utf8 (0); #elif defined(ENABLE_NLS) if (saved_codeset) diff --git a/common/util.h b/common/util.h index e479cfc4c..269aed193 100644 --- a/common/util.h +++ b/common/util.h @@ -194,6 +194,8 @@ const char *dirmngr_socket_name (void); #define GNUPG_MODULE_NAME_CHECK_PATTERN 6 #define GNUPG_MODULE_NAME_GPGSM 7 #define GNUPG_MODULE_NAME_GPG 8 +#define GNUPG_MODULE_NAME_CONNECT_AGENT 9 +#define GNUPG_MODULE_NAME_GPGCONF 10 const char *gnupg_module_name (int which); diff --git a/jnlib/ChangeLog b/jnlib/ChangeLog index 23a02020c..0f0b21c10 100644 --- a/jnlib/ChangeLog +++ b/jnlib/ChangeLog @@ -1,3 +1,7 @@ +2008-05-26 Werner Koch + + * argparse.c (usage): Make sure to print a trailing LF for usage(1). + 2008-04-08 Werner Koch * w32-gettext.c (gettext_select_utf8): New. diff --git a/jnlib/argparse.c b/jnlib/argparse.c index f9958cb89..443a1e77e 100644 --- a/jnlib/argparse.c +++ b/jnlib/argparse.c @@ -896,6 +896,8 @@ show_version() void usage (int level) { + const char *p; + if (!level) { fprintf(stderr,"%s %s; %s\n", strusage(11), strusage(13), strusage (14)); @@ -903,7 +905,10 @@ usage (int level) } else if (level == 1) { - fputs (strusage (40), stderr); + p = strusage (40); + fputs (p, stderr); + if (*p && p[strlen(p)] != '\n') + putc ('\n', stderr); exit (2); } else if (level == 2) diff --git a/po/ChangeLog b/po/ChangeLog index 02c7d58ac..7dcdae16c 100644 --- a/po/ChangeLog +++ b/po/ChangeLog @@ -1,3 +1,9 @@ +2008-05-26 Werner Koch + + * de.po: Minor fixes submitted by Jan Seidel. Fixes bug#916. + + * it.po: Typo fix. Fixes bug#920. + 2008-05-09 Werner Koch * de.po: Update. diff --git a/po/be.po b/po/be.po index fc6c14fb2..48577a029 100644 --- a/po/be.po +++ b/po/be.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg 1.2.2\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2003-10-30 16:35+0200\n" "Last-Translator: Ales Nyakhaychyk \n" "Language-Team: Belarusian \n" diff --git a/po/ca.po b/po/ca.po index 82cd278ae..589b4d102 100644 --- a/po/ca.po +++ b/po/ca.po @@ -27,7 +27,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg 1.4.0\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2005-02-04 02:04+0100\n" "Last-Translator: Jordi Mallach \n" "Language-Team: Catalan \n" diff --git a/po/cs.po b/po/cs.po index f437c03ae..fbc0a27e1 100644 --- a/po/cs.po +++ b/po/cs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg-1.3.92\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2004-11-26 09:12+0200\n" "Last-Translator: Roman Pavlik \n" "Language-Team: Czech \n" diff --git a/po/da.po b/po/da.po index 412f4d371..ff7901c98 100644 --- a/po/da.po +++ b/po/da.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg 1.0.0h\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2003-12-03 16:11+0100\n" "Last-Translator: Birger Langkjer \n" "Language-Team: Danish \n" diff --git a/po/de.po b/po/de.po index bdd3fa50d..8dd75e3df 100644 --- a/po/de.po +++ b/po/de.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg-2.0.6\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2008-05-09 11:21+0200\n" "Last-Translator: Walter Koch \n" "Language-Team: German \n" @@ -1948,7 +1948,7 @@ msgstr "" #: g10/gpg.c:794 msgid "Pubkey: " -msgstr "Öff.Schlüssel: " +msgstr "Öff. Schlüssel: " #: g10/gpg.c:801 g10/keyedit.c:2321 msgid "Cipher: " @@ -2645,7 +2645,7 @@ msgstr " geheime Schlüssel importiert: %lu\n" #: g10/import.c:322 sm/import.c:122 #, c-format msgid " secret keys unchanged: %lu\n" -msgstr " unveränderte geh.Schl.: %lu\n" +msgstr " unveränderte geh. Schl.: %lu\n" #: g10/import.c:324 sm/import.c:124 #, c-format @@ -2693,7 +2693,7 @@ msgstr "es ist extrem empfehlenswert Ihre Einstellungen zu ändern und\n" #: g10/import.c:652 msgid "re-distribute this key to avoid potential algorithm mismatch problems\n" msgstr "" -"diesen Schüssel wieder zu verteilen, um mögliche Probleme durch unpassende " +"diesen Schlüssel wieder zu verteilen, um mögliche Probleme durch unpassende " "Verfahrenskombinationen zu vermeiden\n" #: g10/import.c:676 @@ -3322,7 +3322,7 @@ msgstr "Beglaubigung fehlgeschlagen: %s\n" #: g10/keyedit.c:1131 msgid "Key has only stub or on-card key items - no passphrase to change.\n" msgstr "" -"Der Schlüssel enthält nur \"stub\"- oder \"on-card\"-Schüsselelemente- keine " +"Der Schlüssel enthält nur \"stub\"- oder \"on-card\"-Schlüsselelemente- keine " "Passphrase ist zu ändern.\n" #: g10/keyedit.c:1142 g10/keygen.c:3530 @@ -3568,7 +3568,7 @@ msgstr "Schlüssel wurde widerrufen." #: g10/keyedit.c:1766 msgid "Really sign all user IDs? (y/N) " -msgstr "Wirklich alle User-IDs beglaubigen? " +msgstr "Wirklich alle User-IDs beglaubigen? (j/N) " #: g10/keyedit.c:1773 msgid "Hint: Select the user IDs to sign\n" @@ -3644,15 +3644,15 @@ msgstr "Diese User-ID wirklich widerrufen? (j/N) " #: g10/keyedit.c:2035 msgid "Do you really want to revoke the entire key? (y/N) " -msgstr "Möchten Sie diesen Schlüssel wirklich vollständig widerrufen? " +msgstr "Möchten Sie diesen Schlüssel wirklich vollständig widerrufen? (j/N) " #: g10/keyedit.c:2046 msgid "Do you really want to revoke the selected subkeys? (y/N) " -msgstr "Möchten Sie die ausgewählten Unterschlüssel wirklich widerrufen? " +msgstr "Möchten Sie die ausgewählten Unterschlüssel wirklich widerrufen? (j/N) " #: g10/keyedit.c:2048 msgid "Do you really want to revoke this subkey? (y/N) " -msgstr "Möchten Sie diesen Schlüssel wirklich widerrufen? " +msgstr "Möchten Sie diesen Schlüssel wirklich widerrufen? (j/N) " #: g10/keyedit.c:2098 msgid "Owner trust may not be set while using a user provided trust database\n" @@ -3676,11 +3676,11 @@ msgstr "Die Voreinstellungen wirklich ändern? (j/N) " #: g10/keyedit.c:2216 msgid "Save changes? (y/N) " -msgstr "Änderungen speichern? " +msgstr "Änderungen speichern? (j/N) " #: g10/keyedit.c:2219 msgid "Quit without saving? (y/N) " -msgstr "Beenden ohne zu speichern? " +msgstr "Beenden ohne zu speichern? (j/N) " #: g10/keyedit.c:2229 #, c-format @@ -3824,7 +3824,7 @@ msgstr "Wollen Sie ihn immer noch hinzufügen? (j/N) " #: g10/keyedit.c:3032 msgid "You may not add a photo ID to a PGP2-style key.\n" -msgstr "Sie können einem PGP2-artigen SchlüÂüsel keine Foto-ID hinzufügen.\n" +msgstr "Sie können einem PGP2-artigen Schlüssel keine Foto-ID hinzufügen.\n" #: g10/keyedit.c:3172 msgid "Delete this good signature? (y/N/q)" @@ -3898,7 +3898,7 @@ msgstr "" #: g10/keyedit.c:3367 msgid "You may not add a designated revoker to a PGP 2.x-style key.\n" msgstr "" -"Sie können einem PGP2-artigen SchlüÂüsel keine vorgesehenen Widerrufer " +"Sie können einem PGP2-artigen Schlüssel keine vorgesehenen Widerrufer " "hinzufügen.\n" #: g10/keyedit.c:3387 @@ -5288,7 +5288,7 @@ msgstr "" "Wählen Sie ein Bild für Ihre Foto-ID aus. Das Bild muß eine JPEG-Datei\n" "sein. Bitte beachten Sie, daß das Bild in Ihrem öffentlichen\n" "Schlüssel gespeichert wird. Wenn Sie ein sehr großes Bild benutzen,\n" -"wir Ihr Schlüssel leider auch sehr groß werden. Ein Bild der GröÂße\n" +"wir Ihr Schlüssel leider auch sehr groß werden. Ein Bild der Größe\n" "240x288 Pixel ist eine gute Wahl.\n" #: g10/photoid.c:94 @@ -5655,7 +5655,7 @@ msgstr "alte Kodierung des DEK wird nicht unterstützt\n" #: g10/pubkey-enc.c:246 #, c-format msgid "cipher algorithm %d%s is unknown or disabled\n" -msgstr "Verschüsselungsverfahren %d%s ist unbekannt oder abgeschaltet\n" +msgstr "Verschlüsselungsverfahren %d%s ist unbekannt oder abgeschaltet\n" #: g10/pubkey-enc.c:284 #, c-format @@ -5754,7 +5754,7 @@ msgid "" msgstr "" "Widerrufszertifikat wurde erzeugt.\n" "\n" -"Bitte speichern Sie es auf einem Medium welches sie wegschliessen\n" +"Bitte speichern Sie es auf einem Medium welches sie wegschließen\n" "können; falls Mallory (ein Angreifer) Zugang zu diesem Zertifikat\n" "erhält, kann erIhren Schlüssel unbrauchbar machen. Es wäre klug,\n" "dieses Widerrufszertifikat auch auszudrucken und sicher aufzubewahren,\n" @@ -5837,7 +5837,7 @@ msgstr "Unsicherer Schlüssel erzeugt - neuer Versuch\n" msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n" msgstr "" "Trotz %d-fachen Versuch konnte die Erzeugung eines unsicheren Schlüssels für " -"sym.Verschlüsselung nicht vermieden werden!\n" +"sym. Verschlüsselung nicht vermieden werden!\n" #: g10/seskey.c:227 sm/certcheck.c:89 msgid "DSA requires the hash length to be a multiple of 8 bits\n" @@ -6352,7 +6352,7 @@ msgstr "keine uneingeschränkt vertrauenswürdige Schlüssel gefunden\n" #, c-format msgid "public key of ultimately trusted key %s not found\n" msgstr "" -"öff.Schlüssel des uneingeschränkt vertrautem Schlüssel %s nicht gefunden\n" +"öff. Schlüssel des uneingeschränkt vertrautem Schlüssel %s nicht gefunden\n" #: g10/trustdb.c:2268 #, c-format @@ -8080,7 +8080,7 @@ msgstr "Fehler beim Lesen von %s: %s\n" #: tools/symcryptrun.c:394 tools/symcryptrun.c:401 #, c-format msgid "error closing %s: %s\n" -msgstr "Fehler beim Schliessen von %s: %s\n" +msgstr "Fehler beim Schließen von %s: %s\n" #: tools/symcryptrun.c:486 msgid "no --program option provided\n" diff --git a/po/el.po b/po/el.po index fc5787578..4c5a601ff 100644 --- a/po/el.po +++ b/po/el.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg-1.1.92\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2003-06-27 12:00+0200\n" "Last-Translator: Dokianakis Theofanis \n" "Language-Team: Greek \n" diff --git a/po/eo.po b/po/eo.po index 9e21852d4..9c12baea7 100644 --- a/po/eo.po +++ b/po/eo.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg 1.0.6d\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2002-04-14 14:33+0100\n" "Last-Translator: Edmund GRIMLEY EVANS \n" "Language-Team: Esperanto \n" diff --git a/po/es.po b/po/es.po index 1e04d8205..f99801719 100644 --- a/po/es.po +++ b/po/es.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg 1.4.1\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2007-08-16 11:35+0200\n" "Last-Translator: Jaime Suárez \n" "Language-Team: Spanish \n" diff --git a/po/et.po b/po/et.po index adee8ebf3..c2f80200a 100644 --- a/po/et.po +++ b/po/et.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg 1.2.2\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2004-06-17 11:04+0300\n" "Last-Translator: Toomas Soome \n" "Language-Team: Estonian \n" diff --git a/po/fi.po b/po/fi.po index 2541fc487..20ff3cc33 100644 --- a/po/fi.po +++ b/po/fi.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg 1.2.2\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2004-06-16 22:40+0300\n" "Last-Translator: Tommi Vainikainen \n" "Language-Team: Finnish \n" diff --git a/po/fr.po b/po/fr.po index f04df9e84..a3bcf884f 100644 --- a/po/fr.po +++ b/po/fr.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg 1.4.2rc2\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2005-06-28 00:24+0200\n" "Last-Translator: Gaël Quéri \n" "Language-Team: French \n" diff --git a/po/gl.po b/po/gl.po index 2b15796b0..a65ef0a4f 100644 --- a/po/gl.po +++ b/po/gl.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg 1.2.4\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2003-12-04 11:39+0100\n" "Last-Translator: Jacobo Tarrio \n" "Language-Team: Galician \n" diff --git a/po/hu.po b/po/hu.po index 0bb8a59ec..f192a6d23 100644 --- a/po/hu.po +++ b/po/hu.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg 1.2.5\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2004-06-19 21:53+0200\n" "Last-Translator: Nagy Ferenc László \n" "Language-Team: Hungarian \n" diff --git a/po/id.po b/po/id.po index ad8b01fbf..d1a5f53f4 100644 --- a/po/id.po +++ b/po/id.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg-id\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2004-06-17 16:32+0700\n" "Last-Translator: Tedi Heriyanto \n" "Language-Team: Indonesian \n" diff --git a/po/it.po b/po/it.po index b4bb17661..09977910a 100644 --- a/po/it.po +++ b/po/it.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: gnupg 1.1.92\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" -"PO-Revision-Date: 2004-06-16 17:01+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" +"PO-Revision-Date: 2008-05-26 12:02+0200\n" "Last-Translator: Marco d'Itri \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" @@ -6408,7 +6408,7 @@ msgstr "non #: g10/trustdb.c:577 g10/trustdb.c:2423 #, c-format msgid "next trustdb check due at %s\n" -msgstr "il prossimoi controllo del trustdb sarà fatto il %s\n" +msgstr "il prossimo controllo del trustdb sarà fatto il %s\n" #: g10/trustdb.c:586 #, fuzzy, c-format diff --git a/po/ja.po b/po/ja.po index 79b4e02be..d41e4bd3b 100644 --- a/po/ja.po +++ b/po/ja.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg 1.3.92\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2004-11-23 11:14+0900\n" "Last-Translator: IIDA Yosiaki \n" "Language-Team: Japanese \n" diff --git a/po/nb.po b/po/nb.po index b5d869e55..0a8b15285 100644 --- a/po/nb.po +++ b/po/nb.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg 1.4.3\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2006-06-13 20:31+0200\n" "Last-Translator: Trond Endrestøl \n" "Language-Team: Norwegian Bokmål \n" diff --git a/po/pl.po b/po/pl.po index 56e984fcf..382d51dcd 100644 --- a/po/pl.po +++ b/po/pl.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg-2.0.7\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2007-11-26 19:01+0100\n" "Last-Translator: Jakub Bogusz \n" "Language-Team: Polish \n" diff --git a/po/pt.po b/po/pt.po index 3a47c47ae..7b9143450 100644 --- a/po/pt.po +++ b/po/pt.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2002-09-13 18:26+0100\n" "Last-Translator: Pedro Morais \n" "Language-Team: pt \n" diff --git a/po/pt_BR.po b/po/pt_BR.po index 1a99f939b..65a376bee 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg 1.0\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2007-08-16 11:35+0200\n" "Last-Translator:\n" "Language-Team: ?\n" diff --git a/po/ro.po b/po/ro.po index 224bf4727..ea570d6d7 100644 --- a/po/ro.po +++ b/po/ro.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg 1.4.2rc1\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2005-05-31 22:00-0500\n" "Last-Translator: Laurentiu Buzdugan \n" "Language-Team: Romanian \n" diff --git a/po/ru.po b/po/ru.po index 6ad5d8803..79a15bcfc 100644 --- a/po/ru.po +++ b/po/ru.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: GnuPG 2.0.0\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2006-11-07 19:31+0300\n" "Last-Translator: Maxim Britov \n" "Language-Team: Russian \n" diff --git a/po/sk.po b/po/sk.po index fd955e2c1..c20ac87b5 100644 --- a/po/sk.po +++ b/po/sk.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg 1.2.5\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2004-07-20 15:52+0200\n" "Last-Translator: Michal Majer \n" "Language-Team: Slovak \n" diff --git a/po/sv.po b/po/sv.po index 061aaf59f..d2eb82471 100644 --- a/po/sv.po +++ b/po/sv.po @@ -24,7 +24,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg trunk\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2007-11-12 16:08+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" diff --git a/po/tr.po b/po/tr.po index 457b5dcaa..94fe37660 100644 --- a/po/tr.po +++ b/po/tr.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg 1.9.94\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2006-11-04 03:45+0200\n" "Last-Translator: Nilgün Belma Bugüner \n" "Language-Team: Turkish \n" diff --git a/po/zh_CN.po b/po/zh_CN.po index 8b896b758..2abe04010 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg 1.4.4\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2006-07-02 10:58+0800\n" "Last-Translator: Meng Jie \n" "Language-Team: Chinese (simplified) \n" diff --git a/po/zh_TW.po b/po/zh_TW.po index 6e73983a5..952b0e147 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg 2.0.9\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"POT-Creation-Date: 2008-05-09 11:28+0200\n" +"POT-Creation-Date: 2008-05-09 11:38+0200\n" "PO-Revision-Date: 2008-03-26 22:35+0800\n" "Last-Translator: Jedi Lin \n" "Language-Team: Chinese (traditional) \n"