From: Redouane Kachach Date: Mon, 23 May 2022 10:14:07 +0000 (+0200) Subject: mgr/nfs: validate virtual_ip parameter X-Git-Tag: v18.0.0~685^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=75aafdaf367cd3624cb33ac5a99a73a27a9e3f52;p=ceph.git mgr/nfs: validate virtual_ip parameter Fixes: https://tracker.ceph.com/issues/54581 Signed-off-by: Redouane Kachach --- diff --git a/src/pybind/mgr/nfs/cluster.py b/src/pybind/mgr/nfs/cluster.py index 4ddc750044ee..b0c82aa606a5 100644 --- a/src/pybind/mgr/nfs/cluster.py +++ b/src/pybind/mgr/nfs/cluster.py @@ -1,3 +1,4 @@ +import ipaddress import logging import json import re @@ -105,7 +106,13 @@ class NFSCluster: ingress: Optional[bool] = None, port: Optional[int] = None, ) -> Tuple[int, str, str]: + try: + if virtual_ip: + # validate virtual_ip value: ip_address throws a ValueError + # exception in case it's not a valid ipv4 or ipv6 address + ip = virtual_ip.split('/')[0] + ipaddress.ip_address(ip) if virtual_ip and not ingress: raise NFSInvalidOperation('virtual_ip can only be provided with ingress enabled') if not virtual_ip and ingress: