Re: [nft PATCH v4 4/6] py: fix exception during cleanup of half-initialized Nftables

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Aug 03, 2023 at 09:35:20PM +0200, Thomas Haller wrote:
> When we create a Nftables instance against an older library version,
> we might not find a symbol and fail with an exception when initializing
> the context object.
> 
> Then, __del__() is still called, but resulting in a second exception
> because self.__ctx is not set. Avoid that second exception.
> 
>     $ python -c 'import nftables; nftables.Nftables()'
>     Traceback (most recent call last):
>       File "<string>", line 1, in <module>
>       File "/data/src/nftables/py/nftables.py", line 90, in __init__
>         self.nft_ctx_input_get_flags = lib.nft_ctx_input_get_flags
>                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
>       File "/usr/lib64/python3.11/ctypes/__init__.py", line 389, in __getattr__
>         func = self.__getitem__(name)
>                ^^^^^^^^^^^^^^^^^^^^^^
>       File "/usr/lib64/python3.11/ctypes/__init__.py", line 394, in __getitem__
>         func = self._FuncPtr((name_or_ordinal, self))
>                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>     AttributeError: /lib64/libnftables.so.1: undefined symbol: nft_ctx_input_get_flags
>     Exception ignored in: <function Nftables.__del__ at 0x7f6315a2c540>
>     Traceback (most recent call last):
>       File "/data/src/nftables/py/nftables.py", line 166, in __del__
>         self.nft_ctx_free(self.__ctx)
>         ^^^^^^^^^^^^^^^^^
>     AttributeError: 'Nftables' object has no attribute 'nft_ctx_free'
> 
> Signed-off-by: Thomas Haller <thaller@xxxxxxxxxx>

Reviewed-by: Phil Sutter <phil@xxxxxx>



[Index of Archives]     [Netfitler Users]     [Berkeley Packet Filter]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux