Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork33.7k
Description
Looks like code in this check cannot ever be reached:
Lines 2824 to 2827 in2b94a05
| newsession=d2i_SSL_SESSION(NULL,&const_p,slen); | |
| if (session==NULL) { | |
| gotoerror; | |
| } |
At this pointsession cannot beNULL, because it is checked right above:
Lines 2803 to 2806 in2b94a05
| if (session==NULL) { | |
| PyErr_SetString(PyExc_ValueError,"Invalid session"); | |
| gotoerror; | |
| } |
I guess that it was intended to checknewsession variable instead.
Docs say:https://www.openssl.org/docs/man1.0.2/man3/d2i_SSL_SESSION.html
d2i_SSL_SESSION() returns a pointer to the newly allocated SSL_SESSION object. In case of failure the NULL-pointer is returned and the error message can be retrieved from the error stack.
One more thing that bothers me here is that error is not set. We just returnNULL which can theoretically crash the interpeter.
So, my plan is to:
- Check
newsessioninstead - Add a
ValueErrorthere
Originally introduced in99a6570
PR is on its way.
Found by Linux Verification Center (portal.linuxtesting.ru) with SVACE.
Author A. Voronin.