<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Aptos;
        panose-1:2 11 0 4 2 2 2 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Aptos",sans-serif;
        mso-ligatures:standardcontextual;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Aptos",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:11.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="#467886" vlink="#96607D" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">We also ran into some variation of this issue using 0.9.8-3.1+deb11u2.<br>
<br>
<o:p></o:p></p>
<p class="MsoNormal">Using the following script `nft -f step1.nft`(it does not matter if map1 has some elements or not):<o:p></o:p></p>
<p class="MsoNormal">```step1.nft<br>
table inet filter {<o:p></o:p></p>
<p class="MsoNormal">  map map1 {<o:p></o:p></p>
<p class="MsoNormal">    type ifname : verdict<o:p></o:p></p>
<p class="MsoNormal">  }<o:p></o:p></p>
<p class="MsoNormal">}<br>
```<br>
<br>
<o:p></o:p></p>
<p class="MsoNormal">Then if we later want to modify map1 and create another map in the same file, we get the segmentation fault. The minimum needed to trigger the error is the following:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">```step2.nft<o:p></o:p></p>
<p class="MsoNormal">flush map inet filter map1<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">table inet filter {<o:p></o:p></p>
<p class="MsoNormal">  map map2 {<o:p></o:p></p>
<p class="MsoNormal">    type ifname : verdict<o:p></o:p></p>
<p class="MsoNormal">  }<o:p></o:p></p>
<p class="MsoNormal">}<br>
```<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Here is a backtrace: <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">```<o:p></o:p></p>
<p class="MsoNormal">Program received signal SIGSEGV, Segmentation fault.<o:p></o:p></p>
<p class="MsoNormal">table_free (table=table@entry=0x55555556c060) at rule.c:1358<o:p></o:p></p>
<p class="MsoNormal">(gdb) bt<o:p></o:p></p>
<p class="MsoNormal">#0  table_free (table=table@entry=0x55555556c060) at rule.c:1358<o:p></o:p></p>
<p class="MsoNormal">#1  0x00007ffff7f29c47 in table_free (table=0x55555556c060) at rule.c:1347<o:p></o:p></p>
<p class="MsoNormal">#2  cmd_free (cmd=0x55555556c6d0) at rule.c:1680<o:p></o:p></p>
<p class="MsoNormal">#3  0x00007ffff7f5b4c8 in nft_run_cmd_from_filename (nft=0x55555555d2a0, filename=filename@entry=0x7fffffffee10 "test.nft") at libnftables.c:544<o:p></o:p></p>
<p class="MsoNormal">#4  0x00005555555569f6 in main (argc=3, argv=0x7fffffffebc8) at main.c:491<br>
```<o:p></o:p></p>
</div>
</body>
</html>