[PATCH 1/3] gtphub: fix gtphub_read() semantics.

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

Neels Hofmeyr nhofmeyr at sysmocom.de
Tue Nov 17 11:51:54 UTC 2015


gtphub always wants to know the sender, hence make the from_addr pointer
mandatory.

Fixes two coverity complaints (1339766, 1339764).

Sponsored-by: On-Waves ehi
---
 openbsc/src/gprs/gtphub.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/openbsc/src/gprs/gtphub.c b/openbsc/src/gprs/gtphub.c
index e00d6cd..049e9f5 100644
--- a/openbsc/src/gprs/gtphub.c
+++ b/openbsc/src/gprs/gtphub.c
@@ -784,16 +784,16 @@ static int gtphub_bind_start(struct gtphub_bind *b,
 	return 0;
 }
 
-/* Recv datagram from from->fd, optionally write sender's address to *from_addr.
+/* Recv datagram from from->fd, write sender's address to *from_addr.
  * Return the number of bytes read, zero on error. */
 static int gtphub_read(const struct osmo_fd *from,
 		       struct osmo_sockaddr *from_addr,
 		       uint8_t *buf, size_t buf_len)
 {
-	/* recvfrom requires the available length set in *from_addr_len. */
-	if (from_addr)
-		from_addr->l = sizeof(from_addr->a);
+	OSMO_ASSERT(from_addr);
 
+	/* recvfrom requires the available length set in *from_addr_len. */
+	from_addr->l = sizeof(from_addr->a);
 	errno = 0;
 	ssize_t received = recvfrom(from->fd, buf, buf_len, 0,
 				    (struct sockaddr*)&from_addr->a,
@@ -807,12 +807,10 @@ static int gtphub_read(const struct osmo_fd *from,
 		return 0;
 	}
 
-	if (from_addr) {
-		LOG(LOGL_DEBUG, "from %s\n", osmo_sockaddr_to_str(from_addr));
-	}
+	LOG(LOGL_DEBUG, "Received %d bytes from %s\n%s\n",
+	    (int)received, osmo_sockaddr_to_str(from_addr),
+	    osmo_hexdump(buf, received));
 
-	LOG(LOGL_DEBUG, "Received %d %s\n",
-	    (int)received, osmo_hexdump(buf, received));
 	return received;
 }
 
-- 
2.1.4




More information about the OpenBSC mailing list