logo

oasis

Own branch of Oasis Linux (upstream: <https://git.sr.ht/~mcf/oasis/>) git clone https://anongit.hacktivis.me/git/oasis.git
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:

Apkg/openssh/patch/0002-printf-p-specifier-requires-void-argument.patch133+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apkg/openssh/patch/0003-Fix-sha2-MAKE_CLONE-no-op-definition.patch29+++++++++++++++++++++++++++++
Apkg/openssh/patch/0004-Remove-trailing-semicolon-after-RB_GENERATE_STATIC.patch45+++++++++++++++++++++++++++++++++++++++++++++
Apkg/openssh/patch/0005-upstream-remove-stray-semicolon-after-closing-brace-.patch44++++++++++++++++++++++++++++++++++++++++++++
Mpkg/openssh/ver2+-
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