Re: Segmentation fault: what's wrong with this code?

Neil Horman <[email protected]> Fri, 5 Jun 2026 15:48:12 -0400
Newsgroups gmane.comp.encryption.openssl.user
Message-ID <CAJbOq14ta+A60axFT2K7P9NS=ipQgbWsAFWcsURV+JiBJAE2uQ@mail.gmail.com>
--0000000000009c214a065386f1aa
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Do you have a backtrace of the crash?


On Fri, Jun 5, 2026 at 2:33=E2=80=AFPM Stef Bon <[email protected]> wrote:

> Hi,
>
> I've written the following code, but I get a segmentation fault (when
> calling EVP_PKEY_free).
> I do not see what's causing this. Can you see it? Any help appreciated.
>
> static void PK_read_spk_from_OSSL_DECODER(char *buffer, long unsigned int
> size)
> {
>    OSSL_DECODER_CTX *dctx=3DNULL;
>    EVP_PKEY *spk=3DNULL;
>    const unsigned char *start=3D(unsigned char *) buffer;
>
>    /* private key has a PEM encoded key */
>
>    dctx=3DOSSL_DECODER_CTX_new_for_pkey(&spk, "PEM", NULL, NULL,
> EVP_PKEY_KEYPAIR, NULL, NULL);
>
>    if (dctx=3D=3DNULL) {
>        fprintf(stdout, "cannot create decoder.\n");
>        return;
>    }
>
>    if (OSSL_DECODER_from_data(dctx, &start, &size)<=3D0) {
>        fprintf(stdout, "decoder error.\n");
>    } else {
>        fprintf(stdout, "decoder finished ok.\n");
>        EVP_PKEY_print_private_stdout(spk);
>    }
>
>    EVP_PKEY_free(spk);
>    OSSL_DECODER_CTX_free(dctx);
> }
>
>
> Thanks in advance,
>
> Stef Bon
>
> --
> You received this message because you are subscribed to the Google Groups
> "openssl-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to openssl-users+unsubscribe-MCmKBN63+Bmbup2nOX2J7Q@public.gmane.org
> To view this discussion visit
> https://groups.google.com/a/openssl.org/d/msgid/openssl-users/d37f0ed9-e3=
15-4449-8e27-9cd1902d9190n%40openssl.org
> <https://groups.google.com/a/openssl.org/d/msgid/openssl-users/d37f0ed9-e=
315-4449-8e27-9cd1902d9190n%40openssl.org?utm_medium=3Demail&utm_source=3Df=
ooter>
> .
>

--=20
You received this message because you are subscribed to the Google Groups "=
openssl-users" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to openssl-users+unsubscribe-MCmKBN63+Bmbup2nOX2J7Q@public.gmane.org
To view this discussion visit https://groups.google.com/a/openssl.org/d/msg=
id/openssl-users/CAJbOq14ta%2BA60axFT2K7P9NS%3DipQgbWsAFWcsURV%2BJiBJAE2uQ%=
40mail.gmail.com.

--0000000000009c214a065386f1aa
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Do you have a backtrace of the crash?<div><br></div></div>=
<br><div class=3D"gmail_quote gmail_quote_container"><div dir=3D"ltr" class=
=3D"gmail_attr">On Fri, Jun 5, 2026 at 2:33=E2=80=AFPM Stef Bon &lt;<a href=
=3D"mailto:[email protected]">[email protected]</a>&gt; wrote:<br></div><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-lef=
t:1px solid rgb(204,204,204);padding-left:1ex"><div>Hi,</div><div><br></div=
><div>I&#39;ve written the following code, but I get a segmentation fault (=
when calling EVP_PKEY_free).=C2=A0</div><div>I do not see what&#39;s causin=
g this. Can you see it? Any help appreciated.</div><div><br></div><div>






<span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255);font-fami=
ly:&quot;Courier New&quot;">static void PK_read_spk_from_OSSL_DECODER(char =
*buffer, long unsigned int size)</span><span style=3D"color:rgb(0,0,0);back=
ground-color:rgb(255,255,255);font-family:&quot;Courier New&quot;">
</span><span style=3D"font-family:&quot;Courier New&quot;"><br><span style=
=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)">{</span><span style=
=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)">
</span><br><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255=
)"> =C2=A0=C2=A0=C2=A0OSSL_DECODER_CTX *dctx=3DNULL;</span><span style=3D"c=
olor:rgb(0,0,0);background-color:rgb(255,255,255)">
</span><br><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255=
)"> =C2=A0=C2=A0=C2=A0EVP_PKEY *spk=3DNULL;</span><span style=3D"color:rgb(=
0,0,0);background-color:rgb(255,255,255)">
</span><br><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255=
)"> =C2=A0=C2=A0=C2=A0const unsigned char *start=3D(unsigned char *) buffer=
;</span><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)">=
</span><br><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255=
)"></span><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)=
"><br></span></span></div><div><span style=3D"font-family:&quot;Courier New=
&quot;"><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)">=
=C2=A0 =C2=A0/* private key has a PEM encoded key */</span><span style=3D"c=
olor:rgb(0,0,0);background-color:rgb(255,255,255)">
</span><br><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255=
)">
</span><br><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255=
)"> =C2=A0=C2=A0=C2=A0dctx=3DOSSL_DECODER_CTX_new_for_pkey(&amp;spk, &quot;=
PEM&quot;, NULL, NULL, EVP_PKEY_KEYPAIR, NULL, NULL);</span><span style=3D"=
color:rgb(0,0,0);background-color:rgb(255,255,255)">
</span><br><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255=
)">
</span><br><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255=
)"> =C2=A0=C2=A0=C2=A0if (dctx=3D=3DNULL) {</span><span style=3D"color:rgb(=
0,0,0);background-color:rgb(255,255,255)">
</span><br><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255=
)">
</span><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)">=
=C2=A0 =C2=A0 =C2=A0 =C2=A0fprintf(stdout, &quot;cannot create decoder.\n&q=
uot;);</span><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,2=
55)">
</span><br><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255=
)"> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0return;</span><span style=3D"=
color:rgb(0,0,0);background-color:rgb(255,255,255)">
</span><br><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255=
)">
</span><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)">=
=C2=A0 =C2=A0}</span><span style=3D"color:rgb(0,0,0);background-color:rgb(2=
55,255,255)">
</span><br><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255=
)">
</span><br><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255=
)"> =C2=A0=C2=A0=C2=A0if (OSSL_DECODER_from_data(dctx, &amp;start, &amp;siz=
e)&lt;=3D0) {</span><span style=3D"color:rgb(0,0,0);background-color:rgb(25=
5,255,255)">
</span><br><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255=
)">
</span><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)">=
=C2=A0 =C2=A0 =C2=A0 =C2=A0</span><span style=3D"color:rgb(0,0,0);backgroun=
d-color:rgb(255,255,255)">fprintf(stdout, &quot;decoder error.\n&quot;);</s=
pan><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)">
</span><br><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255=
)">
</span><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)">=
=C2=A0 =C2=A0} else {</span><span style=3D"color:rgb(0,0,0);background-colo=
r:rgb(255,255,255)">
</span><br><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255=
)">
</span><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)">=
=C2=A0 =C2=A0 =C2=A0 =C2=A0fprintf(stdout, &quot;decoder finished ok.\n&quo=
t;);</span><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255=
)">
</span><br><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255=
)"> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0EVP_PKEY_print_private_stdout=
(spk);</span><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,2=
55)">
</span><br><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255=
)">
</span><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)">=
=C2=A0 =C2=A0}</span><span style=3D"color:rgb(0,0,0);background-color:rgb(2=
55,255,255)">
</span><br><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255=
)">
</span><br><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255=
)">=C2=A0 =C2=A0EVP_PKEY_free(spk);</span><span style=3D"color:rgb(0,0,0);b=
ackground-color:rgb(255,255,255)">
</span><br><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255=
)">=C2=A0 =C2=A0OSSL_DECODER_CTX_free(dctx);</span><span style=3D"color:rgb=
(0,0,0);background-color:rgb(255,255,255)">
</span><br><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255=
)">
</span><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)">}=
</span><span style=3D"color:rgb(0,0,0);background-color:rgb(255,255,255)">
</span><br></span><span style=3D"font-family:monospace"><br><br></span>Than=
ks in advance,</div><div><br></div><div>Stef Bon</div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;openssl-users&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:openssl-users+unsubscribe-MCmKBN63+BlAfugRpC6u6w@public.gmane.org" target=3D"=
_blank">openssl-users+unsubscribe-MCmKBN63+BlAfugRpC6u6w@public.gmane.org</a>.<br>
To view this discussion visit <a href=3D"https://groups.google.com/a/openss=
l.org/d/msgid/openssl-users/d37f0ed9-e315-4449-8e27-9cd1902d9190n%40openssl=
.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank">https://=
groups.google.com/a/openssl.org/d/msgid/openssl-users/d37f0ed9-e315-4449-8e=
27-9cd1902d9190n%40openssl.org</a>.<br>
</blockquote></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;openssl-users&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:openssl-users+unsubscribe-MCmKBN63+BlAfugRpC6u6w@public.gmane.org">openssl-us=
[email protected]</a>.<br />
To view this discussion visit <a href=3D"https://groups.google.com/a/openss=
l.org/d/msgid/openssl-users/CAJbOq14ta%2BA60axFT2K7P9NS%3DipQgbWsAFWcsURV%2=
BJiBJAE2uQ%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">https:/=
/groups.google.com/a/openssl.org/d/msgid/openssl-users/CAJbOq14ta%2BA60axFT=
2K7P9NS%3DipQgbWsAFWcsURV%2BJiBJAE2uQ%40mail.gmail.com</a>.<br />

--0000000000009c214a065386f1aa--