It is undefined behavior to call printf with an argument for %p that does not have type `void *` (see C99 7.19.6.1p9). --- On 2020-02-05, Damien Miller <djm@xxxxxxxxxxx> wrote: > I'll look at fixing the %p warning > after release, probably by removing all the %p formats :) > > The RB_GENERATE_STATIC one I'll also look at after release, by syncing > openbsd-compat/sys-tree.h with upstream as that has already fixed the > same problem. Resending these patches rebased on latest master. 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 9d23d823..d0eecdf1 100644 --- a/monitor.c +++ b/monitor.c @@ -1163,7 +1163,7 @@ mm_answer_keyallowed(struct ssh *ssh, int sock, struct sshbuf *m) (r = sshbuf_get_u32(m, &pubkey_auth_attempt)) != 0) fatal_fr(r, "parse"); - debug3_f("key_from_blob: %p", key); + debug3_f("key_from_blob: %p", (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_f("%s %p signature %s%s%s", auth_method, key, + debug3_f("%s %p signature %s%s%s", auth_method, (void *)key, (ret == 0) ? "verified" : "unverified", (ret != 0) ? ": " : "", (ret != 0) ? ssh_err(ret) : ""); diff --git a/session.c b/session.c index c02f7d25..bab1a6d1 100644 --- a/session.c +++ b/session.c @@ -1788,7 +1788,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 a9a6fe38..8f3060d9 100644 --- a/ssh-pkcs11-helper.c +++ b/ssh-pkcs11-helper.c @@ -98,7 +98,7 @@ lookup_key(struct sshkey *k) struct pkcs11_keyinfo *ki; TAILQ_FOREACH(ki, &pkcs11_keylist, next) { - debug("check %p %s %s", ki, ki->providername, ki->label); + debug("check %p %s %s", (void *)ki, ki->providername, ki->label); if (sshkey_equal(k, ki->key)) return (ki->key); } diff --git a/ssh-pkcs11.c b/ssh-pkcs11.c index 844aa9ff..72ff6bef 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); } @@ -338,7 +340,7 @@ pkcs11_check_obj_bool_attrib(struct pkcs11_key *k11, CK_OBJECT_HANDLE obj, } *val = flag != 0; debug_f("provider %p slot %lu object %lu: attrib %lu = %d", - k11->provider, k11->slotidx, obj, type, *val); + (void *)k11->provider, k11->slotidx, obj, type, *val); return (0); } @@ -430,7 +432,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 afaab8d6..1a9f6022 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(const 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.31.1 _______________________________________________ openssh-unix-dev mailing list openssh-unix-dev@xxxxxxxxxxx https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev