[Pkg-gnupg-commit] [gnupg2] 01/05: pull bugfixes from upstream
Daniel Kahn Gillmor
dkg at fifthhorseman.net
Wed Jun 29 21:21:36 UTC 2016
This is an automated email from the git hooks/post-receive script.
dkg pushed a commit to branch experimental
in repository gnupg2.
commit 7acbc1aaf2e952df8e6444df5dcdb91150a79d80
Author: Daniel Kahn Gillmor <dkg at fifthhorseman.net>
Date: Tue Jun 28 12:57:36 2016 -0400
pull bugfixes from upstream
---
...n-Fix-copying-data-from-the-spawned-child.patch | 70 ++++++++++++++++++
debian/patches/0005-g10-Fix-list-packets.patch | 83 ++++++++++++++++++++++
...gp-Fake-the-system-time-for-the-tofu-test.patch | 34 +++++++++
.../0007-scd-Make-option-homedir-work.patch | 27 +++++++
...eset-nonnull_nad-to-zero-for-VENDOR_GEMPC.patch | 32 +++++++++
...009-g10-Fix-regression-of-card-edit-fetch.patch | 53 ++++++++++++++
debian/patches/series | 6 ++
7 files changed, 305 insertions(+)
diff --git a/debian/patches/0004-common-Fix-copying-data-from-the-spawned-child.patch b/debian/patches/0004-common-Fix-copying-data-from-the-spawned-child.patch
new file mode 100644
index 0000000..40c0d70
--- /dev/null
+++ b/debian/patches/0004-common-Fix-copying-data-from-the-spawned-child.patch
@@ -0,0 +1,70 @@
+From: Justus Winter <justus at g10code.com>
+Date: Tue, 28 Jun 2016 14:38:35 +0200
+Subject: common: Fix copying data from the spawned child.
+
+Fixes intermittent gpgtar failures.
+
+* common/exectool.c (copy_buffer_do_copy): Initialize 'nwritten'.
+(gnupg_exec_tool_stream): Loop until all data is copied.
+
+Signed-off-by: Justus Winter <justus at g10code.com>
+---
+ common/exectool.c | 25 +++++++++++++++----------
+ 1 file changed, 15 insertions(+), 10 deletions(-)
+
+diff --git a/common/exectool.c b/common/exectool.c
+index 897450e..b43e7cb 100644
+--- a/common/exectool.c
++++ b/common/exectool.c
+@@ -224,7 +224,7 @@ static gpg_error_t
+ copy_buffer_do_copy (struct copy_buffer *c, estream_t source, estream_t sink)
+ {
+ gpg_error_t err;
+- size_t nwritten;
++ size_t nwritten = 0;
+
+ if (c->nread == 0)
+ {
+@@ -390,7 +390,7 @@ gnupg_exec_tool_stream (const char *pgmname, const char *argv[],
+ /* Now read as long as we have something to poll. We continue
+ reading even after EOF or error on stdout so that we get the
+ other error messages or remaining outut. */
+- while (!fds[1].ignore && !fds[2].ignore)
++ while (! (fds[1].ignore && fds[2].ignore))
+ {
+ count = es_poll (fds, DIM(fds), -1);
+ if (count == -1)
+@@ -465,20 +465,25 @@ gnupg_exec_tool_stream (const char *pgmname, const char *argv[],
+ pgmname, gpg_strerror (err));
+ goto leave;
+ }
++
++ if (es_feof (fds[1].stream))
++ {
++ err = copy_buffer_flush (&cpbuf_out, output);
++ if (err)
++ {
++ log_error ("error reading data from '%s': %s\n",
++ pgmname, gpg_strerror (err));
++ goto leave;
++ }
++
++ fds[1].ignore = 1; /* ready. */
++ }
+ }
+
+ if (fds[2].got_read)
+ read_and_log_stderr (&fderrstate, fds + 2);
+ }
+
+- err = copy_buffer_flush (&cpbuf_out, output);
+- if (err)
+- {
+- log_error ("error reading data from '%s': %s\n",
+- pgmname, gpg_strerror (err));
+- goto leave;
+- }
+-
+ read_and_log_stderr (&fderrstate, NULL); /* Flush. */
+ es_fclose (infp); infp = NULL;
+ es_fclose (extrafp); extrafp = NULL;
diff --git a/debian/patches/0005-g10-Fix-list-packets.patch b/debian/patches/0005-g10-Fix-list-packets.patch
new file mode 100644
index 0000000..14d8e1c
--- /dev/null
+++ b/debian/patches/0005-g10-Fix-list-packets.patch
@@ -0,0 +1,83 @@
+From: NIIBE Yutaka <gniibe at fsij.org>
+Date: Tue, 28 Jun 2016 15:56:48 +0900
+Subject: g10: Fix --list-packets.
+
+* g10/gpg.c (main): Call set_packet_list_mode after assignment of
+opt.list_packets.
+* g10/mainproc.c (do_proc_packets): Don't stop processing with
+--list-packets as the comment says.
+* g10/options.h (list_packets): Fix the comment.
+* g10/parse-packet.c: Fix the condition for opt.list_packets.
+
+--
+
+Debian-bug-id: 828109
+Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
+---
+ g10/gpg.c | 3 +--
+ g10/mainproc.c | 2 +-
+ g10/options.h | 2 +-
+ g10/parse-packet.c | 2 +-
+ 4 files changed, 4 insertions(+), 5 deletions(-)
+
+diff --git a/g10/gpg.c b/g10/gpg.c
+index 1f2d416..73b7604 100644
+--- a/g10/gpg.c
++++ b/g10/gpg.c
+@@ -4648,7 +4648,6 @@ main (int argc, char **argv)
+ break;
+
+ case aListPackets:
+- opt.list_packets=2;
+ default:
+ if( argc > 1 )
+ wrong_args(_("[filename]"));
+@@ -4677,8 +4676,8 @@ main (int argc, char **argv)
+ }
+ }
+ if( cmd == aListPackets ) {
+- set_packet_list_mode(1);
+ opt.list_packets=1;
++ set_packet_list_mode(1);
+ }
+ rc = proc_packets (ctrl, NULL, a );
+ if( rc )
+diff --git a/g10/mainproc.c b/g10/mainproc.c
+index 453d1b0..80051c8 100644
+--- a/g10/mainproc.c
++++ b/g10/mainproc.c
+@@ -1328,7 +1328,7 @@ do_proc_packets (ctrl_t ctrl, CTX c, iobuf_t a)
+ /* Stop processing when an invalid packet has been encountered
+ * but don't do so when we are doing a --list-packets. */
+ if (gpg_err_code (rc) == GPG_ERR_INV_PACKET
+- && opt.list_packets != 2 )
++ && opt.list_packets == 0)
+ break;
+ continue;
+ }
+diff --git a/g10/options.h b/g10/options.h
+index 0a87b90..bc9e57a 100644
+--- a/g10/options.h
++++ b/g10/options.h
+@@ -80,7 +80,7 @@ struct
+ int print_pka_records;
+ int print_dane_records;
+ int no_armor;
+- int list_packets; /* list-packets mode: 1=normal, 2=invoked by command*/
++ int list_packets; /* Option --list-packets active. */
+ int def_cipher_algo;
+ int force_mdc;
+ int disable_mdc;
+diff --git a/g10/parse-packet.c b/g10/parse-packet.c
+index e02238b..bd4fcbd 100644
+--- a/g10/parse-packet.c
++++ b/g10/parse-packet.c
+@@ -211,7 +211,7 @@ set_packet_list_mode (int mode)
+ enable the list mode only with a special option. */
+ if (!listfp)
+ {
+- if (opt.list_packets == 2)
++ if (opt.list_packets)
+ {
+ listfp = es_stdout;
+ if (opt.verbose)
diff --git a/debian/patches/0006-tests-openpgp-Fake-the-system-time-for-the-tofu-test.patch b/debian/patches/0006-tests-openpgp-Fake-the-system-time-for-the-tofu-test.patch
new file mode 100644
index 0000000..de1b2d7
--- /dev/null
+++ b/debian/patches/0006-tests-openpgp-Fake-the-system-time-for-the-tofu-test.patch
@@ -0,0 +1,34 @@
+From: Justus Winter <justus at g10code.com>
+Date: Thu, 23 Jun 2016 17:24:23 +0200
+Subject: tests/openpgp: Fake the system time for the tofu test.
+
+The keys in the tofu test are set to expire on 2016-09-17. Fake the
+system time for this test.
+
+This commit includes changes to the old test as well, for those who
+need to backport it.
+
+* tests/openpgp/gpg-agent.conf.tmpl: Drop trailing newlines.
+* tests/openpgp/tofu.scm: Fake system time.
+* tests/openpgp/tofu.test: Likewise.
+
+GnuPG-bug-id: 2393
+Signed-off-by: Justus Winter <justus at g10code.com>
+---
+ tests/openpgp/tofu.test | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/tests/openpgp/tofu.test b/tests/openpgp/tofu.test
+index 18c1756..0d34af4 100755
+--- a/tests/openpgp/tofu.test
++++ b/tests/openpgp/tofu.test
+@@ -4,6 +4,9 @@
+
+ # set -x
+
++# Redefine GPG with a fixed time.
++GPG="$GPG --faked-system-time=1466684990"
++
+ KEYS="2183839A BC15C85A EE37CF96"
+
+ # Make sure $srcdir is set.
diff --git a/debian/patches/0007-scd-Make-option-homedir-work.patch b/debian/patches/0007-scd-Make-option-homedir-work.patch
new file mode 100644
index 0000000..113c6a4
--- /dev/null
+++ b/debian/patches/0007-scd-Make-option-homedir-work.patch
@@ -0,0 +1,27 @@
+From: Werner Koch <wk at gnupg.org>
+Date: Fri, 17 Jun 2016 08:36:07 +0200
+Subject: scd: Make option --homedir work.
+
+* scd/scdaemon.c (opts): Add --homedir.
+--
+
+Without that entry the homedir setting won't work.
+
+GnuPG-bug-id: 2386
+Signed-off-by: Werner Koch <wk at gnupg.org>
+---
+ scd/scdaemon.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/scd/scdaemon.c b/scd/scdaemon.c
+index 9c11cad..7dbb9c7 100644
+--- a/scd/scdaemon.c
++++ b/scd/scdaemon.c
+@@ -156,6 +156,7 @@ static ARGPARSE_OPTS opts[] = {
+ ARGPARSE_s_s (oDisableApplication, "disable-application", "@"),
+ ARGPARSE_s_n (oEnablePinpadVarlen, "enable-pinpad-varlen",
+ N_("use variable length input for pinpad")),
++ ARGPARSE_s_s (oHomedir, "homedir", "@"),
+
+ ARGPARSE_end ()
+ };
diff --git a/debian/patches/0008-scd-Reset-nonnull_nad-to-zero-for-VENDOR_GEMPC.patch b/debian/patches/0008-scd-Reset-nonnull_nad-to-zero-for-VENDOR_GEMPC.patch
new file mode 100644
index 0000000..7d1eed0
--- /dev/null
+++ b/debian/patches/0008-scd-Reset-nonnull_nad-to-zero-for-VENDOR_GEMPC.patch
@@ -0,0 +1,32 @@
+From: Niibe Yutaka <gniibe at fsij.org>
+Date: Sun, 19 Jun 2016 11:24:50 +0900
+Subject: scd: Reset nonnull_nad to zero for VENDOR_GEMPC.
+
+* (parse_ccid_descriptor): nonnull_nad = 0 for all GEMPC device.
+
+--
+
+We can't use the driver for 08E6:3438, while it works well under PC/SC
+service. I found that the library of ccid always uses the node
+address = ZERO for all transactions. So, we extend the same handling
+for not only GEMPC_CT30, but also for all its devices.
+
+Debian-bug-id: 814584
+Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
+---
+ scd/ccid-driver.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scd/ccid-driver.c b/scd/ccid-driver.c
+index 985404f..7a093f6 100644
+--- a/scd/ccid-driver.c
++++ b/scd/ccid-driver.c
+@@ -975,7 +975,7 @@ parse_ccid_descriptor (ccid_driver_t handle,
+ handle->max_ifsd = 48;
+ }
+
+- if (handle->id_vendor == VENDOR_GEMPC && handle->id_product == GEMPC_CT30)
++ if (handle->id_vendor == VENDOR_GEMPC)
+ {
+ DEBUGOUT ("enabling product quirk: disable non-null NAD\n");
+ handle->nonnull_nad = 0;
diff --git a/debian/patches/0009-g10-Fix-regression-of-card-edit-fetch.patch b/debian/patches/0009-g10-Fix-regression-of-card-edit-fetch.patch
new file mode 100644
index 0000000..233d198
--- /dev/null
+++ b/debian/patches/0009-g10-Fix-regression-of-card-edit-fetch.patch
@@ -0,0 +1,53 @@
+From: NIIBE Yutaka <gniibe at fsij.org>
+Date: Thu, 23 Jun 2016 12:12:43 +0900
+Subject: g10: Fix regression of card-edit/fetch.
+
+* g10/card-util.c (fetch_url): Call keyserver_fetch instead of
+keyserver_import_fprint.
+
+--
+Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
+---
+ g10/card-util.c | 24 +++++++-----------------
+ 1 file changed, 7 insertions(+), 17 deletions(-)
+
+diff --git a/g10/card-util.c b/g10/card-util.c
+index be1a593..2cb44f9 100644
+--- a/g10/card-util.c
++++ b/g10/card-util.c
+@@ -733,28 +733,18 @@ fetch_url (ctrl_t ctrl)
+ log_error("error retrieving URL from card: %s\n",gpg_strerror(rc));
+ else
+ {
+- struct keyserver_spec *spec=NULL;
+-
+ rc=agent_scd_getattr("KEY-FPR",&info);
+ if(rc)
+ log_error("error retrieving key fingerprint from card: %s\n",
+ gpg_strerror(rc));
+ else if (info.pubkey_url && *info.pubkey_url)
+- {
+- spec = parse_keyserver_uri (info.pubkey_url, 1);
+- if(spec && info.fpr1valid)
+- {
+- /* This is not perfectly right. Currently, all card
+- fingerprints are 20 digits, but what about
+- fingerprints for a future v5 key? We should get the
+- length from somewhere lower in the code. In any
+- event, the fpr/keyid is not meaningful for straight
+- HTTP fetches, but using it allows the card to point
+- to HKP and LDAP servers as well. */
+- rc = keyserver_import_fprint (ctrl, info.fpr1, 20, spec);
+- free_keyserver_spec(spec);
+- }
+- }
++ {
++ strlist_t sl = NULL;
++
++ add_to_strlist (&sl, info.pubkey_url);
++ rc = keyserver_fetch (ctrl, sl);
++ free_strlist (sl);
++ }
+ else if (info.fpr1valid)
+ {
+ rc = keyserver_import_fprint (ctrl, info.fpr1, 20, opt.keyserver);
diff --git a/debian/patches/series b/debian/patches/series
index 36806e3..48e6e4a 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,9 @@
0001-avoid-beta-warning.patch
0002-Avoid-simple-memory-dumps-via-ptrace.patch
0003-g10-Fix-another-race-condition-for-trustdb-access.patch
+0004-common-Fix-copying-data-from-the-spawned-child.patch
+0005-g10-Fix-list-packets.patch
+0006-tests-openpgp-Fake-the-system-time-for-the-tofu-test.patch
+0007-scd-Make-option-homedir-work.patch
+0008-scd-Reset-nonnull_nad-to-zero-for-VENDOR_GEMPC.patch
+0009-g10-Fix-regression-of-card-edit-fetch.patch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gnupg2.git
More information about the Pkg-gnupg-commit
mailing list