You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Joe Orton <jo...@redhat.com> on 2018/05/23 07:51:16 UTC
SSLPolicy code questions/backport review
Easier to do here than dump in STATUS; looking at reviewing the 2.4.x
backport:
https://svn.apache.org/repos/asf/httpd/httpd/patches/2.4.x/ssl-policy.patch
0. Overall looks good, I like the way this has been done!
1. Is there a reason why we need SSLPolicyRec with (name, sc) members
rather than having a hash directly of SSLSrvConfigRec *? The only time
->name is used seems to be when creating the hash in add_policy().
[Reading back through commits, I guess this was a legacy of having ->dc
in there too]
2. Storing the policies hash off pconf userdata seems surprising, is
there a reason that's done rather than putting it directly in
SSLModConfigRec?
3. get_policy_names() seems be only now called with create=1, and hence
the same is true for get_policies(), so there are some redundant paths +
redundant arguments here which could be removed?
4. There is a bunch of legacy from the now-removed SSLPolicyDefine
AFAICT still included on trunk (not in the 2.4 patch); there is a
reference added in the docs in the 2.4 patch though. e.g.
BOOL ssl_config_global_isfixed(SSLModConfigRec *mc)
{
- return mc->bFixed;
+ return mc && mc->bFixed;
is I think related and in trunk all the ssl_cmd_* handling of mc==NULL
case (again not in the backport).
5. Very minor, please don't reformat the code now, but httpd code style
has case X: statements lined up with switch rather than indented.
Regards, Joe
Re: SSLPolicy code questions/backport review
Posted by Stefan Eissing <st...@greenbytes.de>.
Thanks for the review! I will take this and clean up the code, mod_ssl certainly deserves it.
> Am 23.05.2018 um 09:51 schrieb Joe Orton <jo...@redhat.com>:
>
> Easier to do here than dump in STATUS; looking at reviewing the 2.4.x
> backport:
>
> https://svn.apache.org/repos/asf/httpd/httpd/patches/2.4.x/ssl-policy.patch
>
> 0. Overall looks good, I like the way this has been done!
>
> 1. Is there a reason why we need SSLPolicyRec with (name, sc) members
> rather than having a hash directly of SSLSrvConfigRec *? The only time
> ->name is used seems to be when creating the hash in add_policy().
> [Reading back through commits, I guess this was a legacy of having ->dc
> in there too]
>
> 2. Storing the policies hash off pconf userdata seems surprising, is
> there a reason that's done rather than putting it directly in
> SSLModConfigRec?
>
> 3. get_policy_names() seems be only now called with create=1, and hence
> the same is true for get_policies(), so there are some redundant paths +
> redundant arguments here which could be removed?
>
> 4. There is a bunch of legacy from the now-removed SSLPolicyDefine
> AFAICT still included on trunk (not in the 2.4 patch); there is a
> reference added in the docs in the 2.4 patch though. e.g.
>
> BOOL ssl_config_global_isfixed(SSLModConfigRec *mc)
> {
> - return mc->bFixed;
> + return mc && mc->bFixed;
>
> is I think related and in trunk all the ssl_cmd_* handling of mc==NULL
> case (again not in the backport).
>
> 5. Very minor, please don't reformat the code now, but httpd code style
> has case X: statements lined up with switch rather than indented.
>
> Regards, Joe
Re: SSLPolicy code questions/backport review
Posted by Stefan Eissing <st...@greenbytes.de>.
Since parts of the changes in mod_ssl for SSLPolicy have now been affected
by changes for TLSv1.3 and there has not been real interest in backporting
SSLPolicy this year anyway, I withdraw the proposal.
The TLSv1.3 changes are not fit for backport since I was unable to verify
that my fixes to client certificate handling were working (I have no working
test setup for that). So, I cleaned up after Joe's review and that's it.
If someone has the energy/interest in backporting any of this, feel free.
-Stefan
In more detail inline:
> Am 23.05.2018 um 09:51 schrieb Joe Orton <jo...@redhat.com>:
>
> Easier to do here than dump in STATUS; looking at reviewing the 2.4.x
> backport:
>
> https://svn.apache.org/repos/asf/httpd/httpd/patches/2.4.x/ssl-policy.patch
>
> 0. Overall looks good, I like the way this has been done!
Thanks.
> 1. Is there a reason why we need SSLPolicyRec with (name, sc) members
> rather than having a hash directly of SSLSrvConfigRec *? The only time
> ->name is used seems to be when creating the hash in add_policy().
> [Reading back through commits, I guess this was a legacy of having ->dc
> in there too]
>
> 2. Storing the policies hash off pconf userdata seems surprising, is
> there a reason that's done rather than putting it directly in
> SSLModConfigRec?
They are also looked up during configuration where SSLModConfigRec
may is not available. See ssl_engine_config.c, line 608
> 3. get_policy_names() seems be only now called with create=1, and hence
> the same is true for get_policies(), so there are some redundant paths +
> redundant arguments here which could be removed?
I'll eliminiate the parameter.
>
> 4. There is a bunch of legacy from the now-removed SSLPolicyDefine
> AFAICT still included on trunk (not in the 2.4 patch); there is a
> reference added in the docs in the 2.4 patch though. e.g.
>
> BOOL ssl_config_global_isfixed(SSLModConfigRec *mc)
> {
> - return mc->bFixed;
> + return mc && mc->bFixed;
>
> is I think related and in trunk all the ssl_cmd_* handling of mc==NULL
> case (again not in the backport).
I'll revert that change. It caused crashes when indirectly called during
configuration, as was the case in policy definition, I think.
> 5. Very minor, please don't reformat the code now, but httpd code style
> has case X: statements lined up with switch rather than indented.
Uhm...ok?
> Regards, Joe