diff options
Diffstat (limited to 'net/tipc')
| -rw-r--r-- | net/tipc/name_distr.c | 8 | ||||
| -rw-r--r-- | net/tipc/udp_media.c | 3 | 
2 files changed, 7 insertions, 4 deletions
diff --git a/net/tipc/name_distr.c b/net/tipc/name_distr.c index 6b626a64b517..a04fe9be1c60 100644 --- a/net/tipc/name_distr.c +++ b/net/tipc/name_distr.c @@ -62,6 +62,8 @@ static void publ_to_item(struct distr_item *i, struct publication *p)  /**   * named_prepare_buf - allocate & initialize a publication message + * + * The buffer returned is of size INT_H_SIZE + payload size   */  static struct sk_buff *named_prepare_buf(struct net *net, u32 type, u32 size,  					 u32 dest) @@ -141,9 +143,9 @@ static void named_distribute(struct net *net, struct sk_buff_head *list,  	struct publication *publ;  	struct sk_buff *skb = NULL;  	struct distr_item *item = NULL; -	uint msg_dsz = (tipc_node_get_mtu(net, dnode, 0) / ITEM_SIZE) * -			ITEM_SIZE; -	uint msg_rem = msg_dsz; +	u32 msg_dsz = ((tipc_node_get_mtu(net, dnode, 0) - INT_H_SIZE) / +			ITEM_SIZE) * ITEM_SIZE; +	u32 msg_rem = msg_dsz;  	list_for_each_entry(publ, pls, local_list) {  		/* Prepare next buffer: */ diff --git a/net/tipc/udp_media.c b/net/tipc/udp_media.c index dd274687a53d..d80cd3f7503f 100644 --- a/net/tipc/udp_media.c +++ b/net/tipc/udp_media.c @@ -665,7 +665,8 @@ static int tipc_udp_enable(struct net *net, struct tipc_bearer *b,  	if (!opts[TIPC_NLA_UDP_LOCAL] || !opts[TIPC_NLA_UDP_REMOTE]) {  		pr_err("Invalid UDP bearer configuration"); -		return -EINVAL; +		err = -EINVAL; +		goto err;  	}  	err = tipc_parse_udp_addr(opts[TIPC_NLA_UDP_LOCAL], &local,  |