On Wed, 26 May 2021, James Cook wrote:
> On Wed, May 26, 2021 at 10:26:00AM +1000, Damien Miller wrote:
> >
> > On Sat, 22 May 2021, James Cook wrote:
> >
> > > >Synopsis: ssh segfault: hostkeys_check_old passes NULL to
> > > >sshkey_ssh_name
> > > >Category: user
> > > >Environment:
> > > System : OpenBSD 6.9
> > > Details : OpenBSD 6.9-current (GENERIC.MP) #28: Wed May 19 16:59:40
> > > MDT 2021
> > >
> > > [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
> > >
> > > Architecture: OpenBSD.amd64
> > > Machine : amd64
> > > >Description:
> > > I see a segfault ssh-ing to one of my computers:
> > >
> > > falsifian moth ~ $ ssh james@angel
> > > no such identity: /home/falsifian/.ssh/unencrypted_id_rsa: No such file
> > > or directory
> > > (james@angel) Password:
> > > Segmentation fault (core dumped)
> >
> > Thanks for the very detailed report. Please try this:
> >
> > diff --git a/clientloop.c b/clientloop.c
> > index 33a43ba..3716dc0 100644
> > --- a/clientloop.c
> > +++ b/clientloop.c
> > @@ -1938,7 +1938,7 @@ hostkeys_check_old(struct hostkey_foreach_line *l,
> > void *_ctx)
> > if (!sshkey_equal(l->key, ctx->old_keys[i]))
> > continue;
> > debug3_f("found deprecated %s key at %s:%ld as %s",
> > - sshkey_ssh_name(ctx->keys[i]), l->path, l->linenum,
> > + sshkey_ssh_name(ctx->old_keys[i]), l->path, l->linenum,
> > hashed ? "[HASHED]" : l->hosts);
> > ctx->old_key_seen = 1;
> > break;
>
> I've been running with exactly that change since I filed the report,
> and I haven't had any trouble. In particular I was able to successfully
> connect to the host that caused the problem in the first place.
Thanks - fix committed
-d