[Devel] [PATCH RH8] ve: Change error code in vz_security_protocol_check to -EPROTONOSUPPORT
Vasily Averin
vvs at virtuozzo.com
Tue May 19 02:28:06 MSK 2020
On 5/18/20 4:53 PM, Valeriy Vdovin wrote:
> 'vz_security_protocol_check' is a part of socket creation routine.
> Socket creation can be split into separate stages:
> - family validation and family specific object creation
> - protocol validation and protocol specific object creation
> First family argument is validated. If family is ok, then the code
> can proceeds to further work with protocol agrument.
>
> As part of family validation procedure for containers
> vz_security_family_check is called. If family is not supported in
> container environment and the current context is container the
> function returns with -EAFNOSUPPORT code.
>
> As part of protocol validation procedure for containers
> vz_security_protocol_check is called. If protocol is not supported
> in container environment and the current context is container the
> function CURRENTLY returns with -EAFNOSUPPORT code, although by
> context of the current socket preparation step it should instead
> return -EPROTONOSUPPORT.
>
> https://jira.sw.ru/browse/PSBM-104225
> Signed-off-by: Valeriy Vdovin <valeriy.vdovin at virtuozzo.com>
> ---
> kernel/ve/ve.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/ve/ve.c b/kernel/ve/ve.c
> index bf9f06d..a94d9cf 100644
> --- a/kernel/ve/ve.c
> +++ b/kernel/ve/ve.c
> @@ -1059,7 +1059,7 @@ int vz_security_protocol_check(struct net *net, int protocol)
> case IPPROTO_SCTP:
> return 0;
> default:
> - return -EAFNOSUPPORT;
> + return -EPROTONOSUPPORT;
I do no like this change:
this check worked well for ages, and is well tested by huge number of tools and application.
and we changes it just to satisfy some new version of _one_ userspace tool,
which is _not_critical_ for us at all.
Please take look at old related bugs
https://jira.sw.ru/browse/PSBM-37418
https://jira.sw.ru/browse/PSBM-47413
Last one have fixed similar problem by using following hunk, it still present in vz6
@@ -1247,6 +1247,8 @@ int vz_security_protocol_check(int protocol)
case IPPROTO_ESP:
case IPPROTO_AH:
break;
+ case IPPROTO_ICMP:
+ return -EACCES;
default:
return -EAFNOSUPPORT;
}
I think it's better to add similar check for ICMP6 and do not change default error code.
Thank you,
Vasily Averin
More information about the Devel
mailing list