<p>Harald Welte <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/13195">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  Pau Espin Pedrol: Looks good to me, but someone else must approve
  Max: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">ipa: Make ipa_server_conn_destroy() re-entrant<br><br>In some situations, the user code called by the closed_cb call-back<br>might be tempted to call itself ipa_server_conn_destroy(), which would lead<br>to a double-llist_del during osmo_fd_unregister() and also a subsequent<br>double talloc_free().  Let's prevent such misuse by existing early in<br>such situations.<br><br>Change-Id: I0fef264ed5b4218906cdbca243ffa11b891025c6<br>---<br>M src/input/ipa.c<br>1 file changed, 5 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/input/ipa.c b/src/input/ipa.c</span><br><span>index e41ec42..25eeb4a 100644</span><br><span>--- a/src/input/ipa.c</span><br><span>+++ b/src/input/ipa.c</span><br><span>@@ -503,7 +503,12 @@</span><br><span> </span><br><span> void ipa_server_conn_destroy(struct ipa_server_conn *conn)</span><br><span> {</span><br><span style="color: hsl(120, 100%, 40%);">+     /* make the function re-entrant in case closed_cb() below somehow</span><br><span style="color: hsl(120, 100%, 40%);">+      * calls again into this destructor */</span><br><span style="color: hsl(120, 100%, 40%);">+        if (conn->ofd.fd == -1)</span><br><span style="color: hsl(120, 100%, 40%);">+            return;</span><br><span>      close(conn->ofd.fd);</span><br><span style="color: hsl(120, 100%, 40%);">+       conn->ofd.fd = -1;</span><br><span>        msgb_free(conn->pending_msg);</span><br><span>     osmo_fd_unregister(&conn->ofd);</span><br><span>       if (conn->closed_cb)</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/13195">change 13195</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/13195"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: libosmo-abis </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: I0fef264ed5b4218906cdbca243ffa11b891025c6 </div>
<div style="display:none"> Gerrit-Change-Number: 13195 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder (1000002) </div>
<div style="display:none"> Gerrit-Reviewer: Max <msuraev@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Pau Espin Pedrol <pespin@sysmocom.de> </div>