[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
Wed Nov 18 16:40:34 UTC 2015


Since they (should) fix coverity complaints, I'm also merging these three
to master myself.

~Neels

On Tue, Nov 17, 2015 at 12:51:54PM +0100, Neels Hofmeyr wrote:
> 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
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.osmocom.org/pipermail/openbsc/attachments/20151118/01c4998c/attachment.bin>


More information about the OpenBSC mailing list