<p>fixeria has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/libosmocore/+/21936">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">gsmtap_util: SNR can be negative, use a signed integer<br><br>In 'struct gsmtap_hdr' field 'snr_db' is defined as a signed integer,<br>however all functions that fill this structure accept an unsigned<br>integer.  This is wrong, because SNR can be negative.<br><br>Let's use 'int8_t' instead of 'uint8_t'.  Changing from unsigned<br>to signed should be relatively safe compared to the opposite.<br>Most of the callers I am aware of always do pass 0 anyway.<br><br>Change-Id: I9f432be5c346d563bf518111c14ff04d4a63f592<br>Related: SYS#5073<br>---<br>M include/osmocom/core/gsmtap_util.h<br>M src/gsmtap_util.c<br>2 files changed, 8 insertions(+), 8 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/36/21936/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/core/gsmtap_util.h b/include/osmocom/core/gsmtap_util.h</span><br><span>index 9b215be..e564326 100644</span><br><span>--- a/include/osmocom/core/gsmtap_util.h</span><br><span>+++ b/include/osmocom/core/gsmtap_util.h</span><br><span>@@ -17,11 +17,11 @@</span><br><span> </span><br><span> struct msgb *gsmtap_makemsg_ex(uint8_t type, uint16_t arfcn, uint8_t ts, uint8_t chan_type,</span><br><span>                         uint8_t ss, uint32_t fn, int8_t signal_dbm,</span><br><span style="color: hsl(0, 100%, 40%);">-                     uint8_t snr, const uint8_t *data, unsigned int len);</span><br><span style="color: hsl(120, 100%, 40%);">+                          int8_t snr, const uint8_t *data, unsigned int len);</span><br><span> </span><br><span> struct msgb *gsmtap_makemsg(uint16_t arfcn, uint8_t ts, uint8_t chan_type,</span><br><span>                        uint8_t ss, uint32_t fn, int8_t signal_dbm,</span><br><span style="color: hsl(0, 100%, 40%);">-                     uint8_t snr, const uint8_t *data, unsigned int len);</span><br><span style="color: hsl(120, 100%, 40%);">+                          int8_t snr, const uint8_t *data, unsigned int len);</span><br><span> </span><br><span> /*! one gsmtap instance */</span><br><span> struct gsmtap_inst {</span><br><span>@@ -51,12 +51,12 @@</span><br><span> </span><br><span> int gsmtap_send_ex(struct gsmtap_inst *gti, uint8_t type, uint16_t arfcn, uint8_t ts,</span><br><span>                 uint8_t chan_type, uint8_t ss, uint32_t fn,</span><br><span style="color: hsl(0, 100%, 40%);">-             int8_t signal_dbm, uint8_t snr, const uint8_t *data,</span><br><span style="color: hsl(120, 100%, 40%);">+          int8_t signal_dbm, int8_t snr, const uint8_t *data,</span><br><span>          unsigned int len);</span><br><span> </span><br><span> int gsmtap_send(struct gsmtap_inst *gti, uint16_t arfcn, uint8_t ts,</span><br><span>               uint8_t chan_type, uint8_t ss, uint32_t fn,</span><br><span style="color: hsl(0, 100%, 40%);">-             int8_t signal_dbm, uint8_t snr, const uint8_t *data,</span><br><span style="color: hsl(120, 100%, 40%);">+          int8_t signal_dbm, int8_t snr, const uint8_t *data,</span><br><span>          unsigned int len);</span><br><span> </span><br><span> extern const struct value_string gsmtap_gsm_channel_names[];</span><br><span>diff --git a/src/gsmtap_util.c b/src/gsmtap_util.c</span><br><span>index 9a0ac02..336e1d0 100644</span><br><span>--- a/src/gsmtap_util.c</span><br><span>+++ b/src/gsmtap_util.c</span><br><span>@@ -176,7 +176,7 @@</span><br><span>  */</span><br><span> struct msgb *gsmtap_makemsg_ex(uint8_t type, uint16_t arfcn, uint8_t ts, uint8_t chan_type,</span><br><span>                      uint8_t ss, uint32_t fn, int8_t signal_dbm,</span><br><span style="color: hsl(0, 100%, 40%);">-                     uint8_t snr, const uint8_t *data, unsigned int len)</span><br><span style="color: hsl(120, 100%, 40%);">+                           int8_t snr, const uint8_t *data, unsigned int len)</span><br><span> {</span><br><span>  struct msgb *msg;</span><br><span>    struct gsmtap_hdr *gh;</span><br><span>@@ -223,7 +223,7 @@</span><br><span>  */</span><br><span> struct msgb *gsmtap_makemsg(uint16_t arfcn, uint8_t ts, uint8_t chan_type,</span><br><span>                        uint8_t ss, uint32_t fn, int8_t signal_dbm,</span><br><span style="color: hsl(0, 100%, 40%);">-                     uint8_t snr, const uint8_t *data, unsigned int len)</span><br><span style="color: hsl(120, 100%, 40%);">+                           int8_t snr, const uint8_t *data, unsigned int len)</span><br><span> {</span><br><span>  return gsmtap_makemsg_ex(GSMTAP_TYPE_UM, arfcn, ts, chan_type,</span><br><span>               ss, fn, signal_dbm, snr, data, len);</span><br><span>@@ -326,7 +326,7 @@</span><br><span>  */</span><br><span> int gsmtap_send_ex(struct gsmtap_inst *gti, uint8_t type, uint16_t arfcn, uint8_t ts,</span><br><span>           uint8_t chan_type, uint8_t ss, uint32_t fn,</span><br><span style="color: hsl(0, 100%, 40%);">-             int8_t signal_dbm, uint8_t snr, const uint8_t *data,</span><br><span style="color: hsl(120, 100%, 40%);">+          int8_t signal_dbm, int8_t snr, const uint8_t *data,</span><br><span>          unsigned int len)</span><br><span> {</span><br><span>       struct msgb *msg;</span><br><span>@@ -351,7 +351,7 @@</span><br><span>  */</span><br><span> int gsmtap_send(struct gsmtap_inst *gti, uint16_t arfcn, uint8_t ts,</span><br><span>               uint8_t chan_type, uint8_t ss, uint32_t fn,</span><br><span style="color: hsl(0, 100%, 40%);">-             int8_t signal_dbm, uint8_t snr, const uint8_t *data,</span><br><span style="color: hsl(120, 100%, 40%);">+          int8_t signal_dbm, int8_t snr, const uint8_t *data,</span><br><span>          unsigned int len)</span><br><span> {</span><br><span>       return gsmtap_send_ex(gti, GSMTAP_TYPE_UM, arfcn, ts, chan_type, ss, fn,</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/libosmocore/+/21936">change 21936</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/c/libosmocore/+/21936"/><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-Change-Id: I9f432be5c346d563bf518111c14ff04d4a63f592 </div>
<div style="display:none"> Gerrit-Change-Number: 21936 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>