gtphub: fix gtphub_read() semantics.
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
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 @@
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 @@
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;
}