commit: f0f72311369f081643a6cab775b168f1f8222345
parent c5f5be10a79e705a1fcd361bd0650e3fd53e0ae5
Author: Michael Forney <mforney@mforney.org>
Date: Wed, 29 Jan 2020 16:03:05 -0800
openssh: Fix a few more portability issues
Diffstat:
5 files changed, 252 insertions(+), 1 deletion(-)
diff --git a/pkg/openssh/patch/0002-printf-p-specifier-requires-void-argument.patch b/pkg/openssh/patch/0002-printf-p-specifier-requires-void-argument.patch
@@ -0,0 +1,133 @@
+From 7e5f0db8d1f2c7a3da682c716e85430d2d2b4358 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Wed, 27 Nov 2019 19:16:26 -0800
+Subject: [PATCH] printf %p specifier requires `void *` argument
+
+---
+ monitor.c | 4 ++--
+ session.c | 2 +-
+ ssh-pkcs11-helper.c | 2 +-
+ ssh-pkcs11.c | 16 +++++++++-------
+ sshbuf-misc.c | 2 +-
+ 5 files changed, 14 insertions(+), 12 deletions(-)
+
+diff --git a/monitor.c b/monitor.c
+index 64eca98d..e021c81c 100644
+--- a/monitor.c
++++ b/monitor.c
+@@ -1166,7 +1166,7 @@ mm_answer_keyallowed(struct ssh *ssh, int sock, struct sshbuf *m)
+ (r = sshbuf_get_u32(m, &pubkey_auth_attempt)) != 0)
+ fatal("%s: buffer error: %s", __func__, ssh_err(r));
+
+- debug3("%s: key_from_blob: %p", __func__, key);
++ debug3("%s: key_from_blob: %p", __func__, (void *)key);
+
+ if (key != NULL && authctxt->valid) {
+ /* These should not make it past the privsep child */
+@@ -1434,7 +1434,7 @@ mm_answer_keyverify(struct ssh *ssh, int sock, struct sshbuf *m)
+
+ ret = sshkey_verify(key, signature, signaturelen, data, datalen,
+ sigalg, ssh->compat, &sig_details);
+- debug3("%s: %s %p signature %s%s%s", __func__, auth_method, key,
++ debug3("%s: %s %p signature %s%s%s", __func__, auth_method, (void *)key,
+ (ret == 0) ? "verified" : "unverified",
+ (ret != 0) ? ": " : "", (ret != 0) ? ssh_err(ret) : "");
+
+diff --git a/session.c b/session.c
+index 80738b92..2b1a5d4e 100644
+--- a/session.c
++++ b/session.c
+@@ -1787,7 +1787,7 @@ session_dump(void)
+ s->used,
+ s->next_unused,
+ s->self,
+- s,
++ (void *)s,
+ s->chanid,
+ (long)s->pid);
+ }
+diff --git a/ssh-pkcs11-helper.c b/ssh-pkcs11-helper.c
+index 219ce9b5..1131832c 100644
+--- a/ssh-pkcs11-helper.c
++++ b/ssh-pkcs11-helper.c
+@@ -96,7 +96,7 @@ lookup_key(struct sshkey *k)
+ struct pkcs11_keyinfo *ki;
+
+ TAILQ_FOREACH(ki, &pkcs11_keylist, next) {
+- debug("check %p %s", ki, ki->providername);
++ debug("check %p %s", (void *)ki, ki->providername);
+ if (sshkey_equal(k, ki->key))
+ return (ki->key);
+ }
+diff --git a/ssh-pkcs11.c b/ssh-pkcs11.c
+index 09f1ea34..89a83b39 100644
+--- a/ssh-pkcs11.c
++++ b/ssh-pkcs11.c
+@@ -112,7 +112,7 @@ pkcs11_provider_finalize(struct pkcs11_provider *p)
+ CK_ULONG i;
+
+ debug("pkcs11_provider_finalize: %p refcount %d valid %d",
+- p, p->refcount, p->valid);
++ (void *)p, p->refcount, p->valid);
+ if (!p->valid)
+ return;
+ for (i = 0; i < p->nslots; i++) {
+@@ -135,10 +135,12 @@ pkcs11_provider_finalize(struct pkcs11_provider *p)
+ static void
+ pkcs11_provider_unref(struct pkcs11_provider *p)
+ {
+- debug("pkcs11_provider_unref: %p refcount %d", p, p->refcount);
++ debug("pkcs11_provider_unref: %p refcount %d", (void *)p, p->refcount);
+ if (--p->refcount <= 0) {
+- if (p->valid)
+- error("pkcs11_provider_unref: %p still valid", p);
++ if (p->valid) {
++ error("pkcs11_provider_unref: %p still valid",
++ (void *)p);
++ }
+ free(p->name);
+ free(p->slotlist);
+ free(p->slotinfo);
+@@ -166,7 +168,7 @@ pkcs11_provider_lookup(char *provider_id)
+ struct pkcs11_provider *p;
+
+ TAILQ_FOREACH(p, &pkcs11_providers, next) {
+- debug("check %p %s", p, p->name);
++ debug("check %p %s", (void *)p, p->name);
+ if (!strcmp(provider_id, p->name))
+ return (p);
+ }
+@@ -323,7 +325,7 @@ pkcs11_check_obj_bool_attrib(struct pkcs11_key *k11, CK_OBJECT_HANDLE obj,
+ }
+ *val = flag != 0;
+ debug("%s: provider %p slot %lu object %lu: attrib %lu = %d",
+- __func__, k11->provider, k11->slotidx, obj, type, *val);
++ __func__, (void *)k11->provider, k11->slotidx, obj, type, *val);
+ return (0);
+ }
+
+@@ -415,7 +417,7 @@ pkcs11_rsa_private_encrypt(int flen, const u_char *from, u_char *to, RSA *rsa,
+ int rval = -1;
+
+ if ((k11 = RSA_get_ex_data(rsa, rsa_idx)) == NULL) {
+- error("RSA_get_ex_data failed for rsa %p", rsa);
++ error("RSA_get_ex_data failed for rsa %p", (void *)rsa);
+ return (-1);
+ }
+
+diff --git a/sshbuf-misc.c b/sshbuf-misc.c
+index a73f008b..d4714ee1 100644
+--- a/sshbuf-misc.c
++++ b/sshbuf-misc.c
+@@ -65,7 +65,7 @@ sshbuf_dump_data(const void *s, size_t len, FILE *f)
+ void
+ sshbuf_dump(struct sshbuf *buf, FILE *f)
+ {
+- fprintf(f, "buffer %p len = %zu\n", buf, sshbuf_len(buf));
++ fprintf(f, "buffer %p len = %zu\n", (void *)buf, sshbuf_len(buf));
+ sshbuf_dump_data(sshbuf_ptr(buf), sshbuf_len(buf), f);
+ }
+
+--
+2.25.0
+
diff --git a/pkg/openssh/patch/0003-Fix-sha2-MAKE_CLONE-no-op-definition.patch b/pkg/openssh/patch/0003-Fix-sha2-MAKE_CLONE-no-op-definition.patch
@@ -0,0 +1,29 @@
+From 57cf02e5159e39a013a67042a9740d5a13187fb3 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Wed, 27 Nov 2019 19:17:26 -0800
+Subject: [PATCH] Fix sha2 MAKE_CLONE no-op definition
+
+The point of the dummy declaration is so that MAKE_CLONE(...) can have
+a trailing semicolon without introducing an empty declaration. So,
+the macro replacement text should *not* have a trailing semicolon,
+just like DEF_WEAK.
+---
+ openbsd-compat/sha2.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/openbsd-compat/sha2.c b/openbsd-compat/sha2.c
+index e63324c9..e36cc24e 100644
+--- a/openbsd-compat/sha2.c
++++ b/openbsd-compat/sha2.c
+@@ -42,7 +42,7 @@
+ !defined(HAVE_SHA512UPDATE)
+
+ /* no-op out, similar to DEF_WEAK but only needed here */
+-#define MAKE_CLONE(x, y) void __ssh_compat_make_clone_##x_##y(void);
++#define MAKE_CLONE(x, y) void __ssh_compat_make_clone_##x_##y(void)
+
+ #include <string.h>
+ #include <sha2.h>
+--
+2.25.0
+
diff --git a/pkg/openssh/patch/0004-Remove-trailing-semicolon-after-RB_GENERATE_STATIC.patch b/pkg/openssh/patch/0004-Remove-trailing-semicolon-after-RB_GENERATE_STATIC.patch
@@ -0,0 +1,45 @@
+From dc35250b8f316df340d56e45e14d05dc084f7289 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Wed, 27 Nov 2019 19:37:17 -0800
+Subject: [PATCH] Remove trailing semicolon after RB_GENERATE_STATIC
+
+This expands to a series of function definitions, so the semicolon is
+not necessary (in fact, it is not allowed in ISO C).
+---
+ krl.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/krl.c b/krl.c
+index aa8318cf..01522b8f 100644
+--- a/krl.c
++++ b/krl.c
+@@ -60,7 +60,7 @@ struct revoked_serial {
+ };
+ static int serial_cmp(struct revoked_serial *a, struct revoked_serial *b);
+ RB_HEAD(revoked_serial_tree, revoked_serial);
+-RB_GENERATE_STATIC(revoked_serial_tree, revoked_serial, tree_entry, serial_cmp);
++RB_GENERATE_STATIC(revoked_serial_tree, revoked_serial, tree_entry, serial_cmp)
+
+ /* Tree of key IDs */
+ struct revoked_key_id {
+@@ -69,7 +69,7 @@ struct revoked_key_id {
+ };
+ static int key_id_cmp(struct revoked_key_id *a, struct revoked_key_id *b);
+ RB_HEAD(revoked_key_id_tree, revoked_key_id);
+-RB_GENERATE_STATIC(revoked_key_id_tree, revoked_key_id, tree_entry, key_id_cmp);
++RB_GENERATE_STATIC(revoked_key_id_tree, revoked_key_id, tree_entry, key_id_cmp)
+
+ /* Tree of blobs (used for keys and fingerprints) */
+ struct revoked_blob {
+@@ -79,7 +79,7 @@ struct revoked_blob {
+ };
+ static int blob_cmp(struct revoked_blob *a, struct revoked_blob *b);
+ RB_HEAD(revoked_blob_tree, revoked_blob);
+-RB_GENERATE_STATIC(revoked_blob_tree, revoked_blob, tree_entry, blob_cmp);
++RB_GENERATE_STATIC(revoked_blob_tree, revoked_blob, tree_entry, blob_cmp)
+
+ /* Tracks revoked certs for a single CA */
+ struct revoked_certs {
+--
+2.25.0
+
diff --git a/pkg/openssh/patch/0005-upstream-remove-stray-semicolon-after-closing-brace-.patch b/pkg/openssh/patch/0005-upstream-remove-stray-semicolon-after-closing-brace-.patch
@@ -0,0 +1,44 @@
+From 0bf705b94187d72f8964083039fcc24cfa197a83 Mon Sep 17 00:00:00 2001
+From: "djm@openbsd.org" <djm@openbsd.org>
+Date: Wed, 27 Nov 2019 22:32:11 +0000
+Subject: [PATCH] upstream: remove stray semicolon after closing brace of
+ function;
+
+from Michael Forney
+
+OpenBSD-Commit-ID: fda95acb799bb160d15e205ee126117cf33da3a7
+---
+ ssh-sk.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/ssh-sk.c b/ssh-sk.c
+index 2b25c42f..7c63536e 100644
+--- a/ssh-sk.c
++++ b/ssh-sk.c
+@@ -1,4 +1,4 @@
+-/* $OpenBSD: ssh-sk.c,v 1.16 2019/11/19 22:23:19 djm Exp $ */
++/* $OpenBSD: ssh-sk.c,v 1.17 2019/11/27 22:32:11 djm Exp $ */
+ /*
+ * Copyright (c) 2019 Google LLC
+ *
+@@ -153,7 +153,7 @@ sshsk_free_enroll_response(struct sk_enroll_response *r)
+ freezero(r->signature, r->signature_len);
+ freezero(r->attestation_cert, r->attestation_cert_len);
+ freezero(r, sizeof(*r));
+-};
++}
+
+ static void
+ sshsk_free_sign_response(struct sk_sign_response *r)
+@@ -163,7 +163,7 @@ sshsk_free_sign_response(struct sk_sign_response *r)
+ freezero(r->sig_r, r->sig_r_len);
+ freezero(r->sig_s, r->sig_s_len);
+ freezero(r, sizeof(*r));
+-};
++}
+
+ #ifdef WITH_OPENSSL
+ /* Assemble key from response */
+--
+2.25.0
+
diff --git a/pkg/openssh/ver b/pkg/openssh/ver
@@ -1 +1 @@
-8.1p1-168-gad44ca81 r0
+8.1p1-168-gad44ca81 r1