<html>
    <head>
      <base href="https://bugzilla.netfilter.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Iptables fails to match rules with malloc perturberation activated"
   href="https://bugzilla.netfilter.org/show_bug.cgi?id=1150">1150</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Iptables fails to match rules with malloc perturberation activated
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>iptables
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>x86_64
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P5
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>iptables
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>netfilter-buglog@lists.netfilter.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>goeran@uddeborg.se
          </td>
        </tr></table>
      <p>
        <div>
        <pre>On my Fedora system, I've upgraded to Fedora 26 versions of iptables and, in
case it matters, glibc.

  iptables-1.6.1-2.fc26.x86_64
  glibc-2.25-4.fc26.x86_64

I also have the debugmode package installed, which sets the environment
variable MALLOC_PERTURB_ to a random value.  The variable is meant to
"detecting  errors  where  programs  incorrectly rely on allocated memory being
initialized to zero, or reuse values in memory that has already been freed." 
It appears iptables in some cases do this.

I haven't figured out exactly what conditions trigger the bug, but here is one
way to reliably reproduce the behaviour:

  iptables -t nat -N testchain
  iptables -t nat -A testchain  -j SNAT --to-source 1.2.3.4
  MALLOC_PERTURB_=42 iptables -t nat -D testchain  -j SNAT --to-source 1.2.3.4

The last command gives the error message 

  iptables: No chain/target/match by that name.

The rule I try to remove is still present.  If I disable malloc perturberation
by setting the variable to 0, the command succeeds

  MALLOC_PERTURB_=0 iptables -t nat -D testchain  -j SNAT --to-source 1.2.3.4

This gives no error message, and the rule is indeed gone.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are watching all bug changes.</li>
      </ul>
    </body>
</html>