<p>Harald Welte has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/13913">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">deal with rate_ctr_group_alloc() returning NULL<br><br>Change-Id: I47d6623b9eca704e3c2537cfb5799a4c0749a7bc<br>Related: #3701<br>---<br>D doc/vty/example.xml<br>D doc/vty/vtydoc.xsd<br>M src/gb/gprs_bssgp.c<br>M src/gb/gprs_ns.c<br>4 files changed, 8 insertions(+), 68 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/13/13913/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/doc/vty/example.xml b/doc/vty/example.xml</span><br><span>deleted file mode 100644</span><br><span>index 400c634..0000000</span><br><span>--- a/doc/vty/example.xml</span><br><span>+++ /dev/null</span><br><span>@@ -1,22 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0" encoding="UTF-8"?></span><br><span style="color: hsl(0, 100%, 40%);">-<vtydoc xmlns="urn:osmocom:xml:libosmocore:vty:doc:1.0"></span><br><span style="color: hsl(0, 100%, 40%);">-    <!-- test a nested hierachy --></span><br><span style="color: hsl(0, 100%, 40%);">-    <node id="mgcp" name="MGCP Node"></span><br><span style="color: hsl(0, 100%, 40%);">-       <!-- define a command --></span><br><span style="color: hsl(0, 100%, 40%);">- <command id="foo_cmd"></span><br><span style="color: hsl(0, 100%, 40%);">-          <doc>General docs</doc></span><br><span style="color: hsl(0, 100%, 40%);">-             <params></span><br><span style="color: hsl(0, 100%, 40%);">-                  <param name="do" doc="Explain do" /></span><br><span style="color: hsl(0, 100%, 40%);">-                  <param name="fo" doc="Explain foo" /></span><br><span style="color: hsl(0, 100%, 40%);">-         </params></span><br><span style="color: hsl(0, 100%, 40%);">- </command></span><br><span style="color: hsl(0, 100%, 40%);">-        <command id="foo_cmd"></span><br><span style="color: hsl(0, 100%, 40%);">-          <doc>General docs</doc></span><br><span style="color: hsl(0, 100%, 40%);">-             <params></span><br><span style="color: hsl(0, 100%, 40%);">-                  <param name="do" doc="Explain do" /></span><br><span style="color: hsl(0, 100%, 40%);">-                  <param name="fo" doc="Explain foo" /></span><br><span style="color: hsl(0, 100%, 40%);">-         </params></span><br><span style="color: hsl(0, 100%, 40%);">- </command></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    </node></span><br><span style="color: hsl(0, 100%, 40%);">-</vtydoc></span><br><span>diff --git a/doc/vty/vtydoc.xsd b/doc/vty/vtydoc.xsd</span><br><span>deleted file mode 100644</span><br><span>index 53a67a3..0000000</span><br><span>--- a/doc/vty/vtydoc.xsd</span><br><span>+++ /dev/null</span><br><span>@@ -1,46 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-<?xml version="1.0" encoding="UTF-8"?></span><br><span style="color: hsl(0, 100%, 40%);">-<xs:schema</span><br><span style="color: hsl(0, 100%, 40%);">-    xmlns="urn:osmocom:xml:libosmocore:vty:doc:1.0"</span><br><span style="color: hsl(0, 100%, 40%);">-    xmlns:xs="http://www.w3.org/2001/XMLSchema"</span><br><span style="color: hsl(0, 100%, 40%);">-    targetNamespace="urn:osmocom:xml:libosmocore:vty:doc:1.0"</span><br><span style="color: hsl(0, 100%, 40%);">-    elementFormDefault="qualified"</span><br><span style="color: hsl(0, 100%, 40%);">-    attributeFormDefault="unqualified"></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    <xs:complexType name="ParamType"></span><br><span style="color: hsl(0, 100%, 40%);">-        <xs:attribute name="name" type="xs:string" use="required" /></span><br><span style="color: hsl(0, 100%, 40%);">-        <xs:attribute name="doc" type="xs:string" use="required" /></span><br><span style="color: hsl(0, 100%, 40%);">-    </xs:complexType></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    <xs:complexType name="ParamsType"></span><br><span style="color: hsl(0, 100%, 40%);">-        <xs:sequence></span><br><span style="color: hsl(0, 100%, 40%);">-            <xs:element name="param" type="ParamType" maxOccurs="unbounded" /></span><br><span style="color: hsl(0, 100%, 40%);">-        </xs:sequence></span><br><span style="color: hsl(0, 100%, 40%);">-    </xs:complexType></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    <xs:complexType name="CommandType"></span><br><span style="color: hsl(0, 100%, 40%);">-        <xs:sequence></span><br><span style="color: hsl(0, 100%, 40%);">-            <xs:element name="doc" type="xs:string" minOccurs="0" maxOccurs="1" /></span><br><span style="color: hsl(0, 100%, 40%);">-            <xs:element name="params" type="ParamsType" minOccurs="1" maxOccurs="1"/></span><br><span style="color: hsl(0, 100%, 40%);">-            <xs:element name="enter" type="xs:string" minOccurs="0" maxOccurs="unbounded" /></span><br><span style="color: hsl(0, 100%, 40%);">-        </xs:sequence></span><br><span style="color: hsl(0, 100%, 40%);">-        <xs:attribute name="id" type="xs:string" use="required" /></span><br><span style="color: hsl(0, 100%, 40%);">-    </xs:complexType></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    <xs:complexType name="NodeType"></span><br><span style="color: hsl(0, 100%, 40%);">-    <xs:sequence></span><br><span style="color: hsl(0, 100%, 40%);">-             <xs:element name="command" type="CommandType" minOccurs="0" maxOccurs="unbounded"/></span><br><span style="color: hsl(0, 100%, 40%);">-       </xs:sequence></span><br><span style="color: hsl(0, 100%, 40%);">-        <xs:attribute name="id" type="xs:anyURI"/></span><br><span style="color: hsl(0, 100%, 40%);">-        <xs:attribute name="name" type="xs:string"/></span><br><span style="color: hsl(0, 100%, 40%);">-    </xs:complexType></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-    <!-- the main entry --></span><br><span style="color: hsl(0, 100%, 40%);">-    <xs:element name="vtydoc"></span><br><span style="color: hsl(0, 100%, 40%);">-        <xs:complexType></span><br><span style="color: hsl(0, 100%, 40%);">-            <xs:sequence></span><br><span style="color: hsl(0, 100%, 40%);">-                <xs:element name="node" type="NodeType" minOccurs="0" maxOccurs="unbounded"/></span><br><span style="color: hsl(0, 100%, 40%);">-            </xs:sequence></span><br><span style="color: hsl(0, 100%, 40%);">-        </xs:complexType></span><br><span style="color: hsl(0, 100%, 40%);">-    </xs:element></span><br><span style="color: hsl(0, 100%, 40%);">-</xs:schema></span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c</span><br><span>index 550757f..b695c28 100644</span><br><span>--- a/src/gb/gprs_bssgp.c</span><br><span>+++ b/src/gb/gprs_bssgp.c</span><br><span>@@ -128,6 +128,10 @@</span><br><span>     ctx->nsei = nsei;</span><br><span>         /* FIXME: BVCI is not unique, only BVCI+NSEI ?!? */</span><br><span>  ctx->ctrg = rate_ctr_group_alloc(ctx, &bssgp_ctrg_desc, bvci);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!ctx->ctrg) {</span><br><span style="color: hsl(120, 100%, 40%);">+          talloc_free(ctx);</span><br><span style="color: hsl(120, 100%, 40%);">+             return NULL;</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span>    ctx->fc = talloc_zero(ctx, struct bssgp_flow_control);</span><br><span>    /* cofigure for 2Mbit, 30 packets in queue */</span><br><span>        bssgp_fc_init(ctx->fc, 100000, 2*1024*1024/8, 30, &_bssgp_tx_dl_ud);</span><br><span>diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c</span><br><span>index d72003e..3679a5b 100644</span><br><span>--- a/src/gb/gprs_ns.c</span><br><span>+++ b/src/gb/gprs_ns.c</span><br><span>@@ -333,6 +333,10 @@</span><br><span>      nsvc->nsi = nsi;</span><br><span>  osmo_timer_setup(&nsvc->timer, gprs_ns_timer_cb, nsvc);</span><br><span>       nsvc->ctrg = rate_ctr_group_alloc(nsvc, &nsvc_ctrg_desc, nsvci);</span><br><span style="color: hsl(120, 100%, 40%);">+       if (!nsvc->ctrg) {</span><br><span style="color: hsl(120, 100%, 40%);">+         talloc_free(nsvc);</span><br><span style="color: hsl(120, 100%, 40%);">+            return NULL;</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span>    nsvc->statg = osmo_stat_item_group_alloc(nsvc, &nsvc_statg_desc, nsvci);</span><br><span>      nsvc->sig_weight = sig_weight;</span><br><span>    nsvc->data_weight = data_weight;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/13913">change 13913</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/13913"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: libosmocore </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I47d6623b9eca704e3c2537cfb5799a4c0749a7bc </div>
<div style="display:none"> Gerrit-Change-Number: 13913 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Harald Welte <laforge@gnumonks.org> </div>