24 lines
		
	
	
	
		
			713 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
	
		
			713 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
| Index: usr.sbin/rpcbind/rpcb_svc_com.c
 | |
| ===================================================================
 | |
| --- usr.sbin/rpcbind/rpcb_svc_com.c	(revision 288434)
 | |
| +++ usr.sbin/rpcbind/rpcb_svc_com.c	(working copy)
 | |
| @@ -1052,12 +1052,15 @@ static bool_t
 | |
|  netbuf_copybuf(struct netbuf *dst, const struct netbuf *src)
 | |
|  {
 | |
|  
 | |
| -	assert(dst->buf == NULL);
 | |
| +	if (dst->len != src->len || dst->buf == NULL) {
 | |
| +		if (dst->buf != NULL)
 | |
| +			free(dst->buf);
 | |
| +		if ((dst->buf = malloc(src->len)) == NULL)
 | |
| +			return (FALSE);
 | |
|  
 | |
| -	if ((dst->buf = malloc(src->len)) == NULL)
 | |
| -		return (FALSE);
 | |
| +		dst->maxlen = dst->len = src->len;
 | |
| +	}
 | |
|  
 | |
| -	dst->maxlen = dst->len = src->len;
 | |
|  	memcpy(dst->buf, src->buf, src->len);
 | |
|  	return (TRUE);
 | |
|  }
 |