Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Dec 2012 23:52:19 +1100 (EST)
From:      Bruce Evans <brde@optusnet.com.au>
To:        Gleb Smirnoff <glebius@FreeBSD.org>
Cc:        Monthadar Al Jaberi <monthadar@FreeBSD.org>, svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org
Subject:   Re: svn commit: r244389 - head/sys/dev/wtap
Message-ID:  <20121219234351.A1351@besplex.bde.org>
In-Reply-To: <20121218085306.GK94420@FreeBSD.org>
References:  <201212180844.qBI8ixdX097633@svn.freebsd.org> <20121218085306.GK94420@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 18 Dec 2012, Gleb Smirnoff wrote:

> On Tue, Dec 18, 2012 at 08:44:59AM +0000, Monthadar Al Jaberi wrote:
> ...
> M> Modified: head/sys/dev/wtap/if_wtap.c
> M> ==============================================================================
> M> --- head/sys/dev/wtap/if_wtap.c	Tue Dec 18 08:41:23 2012	(r244388)
> M> +++ head/sys/dev/wtap/if_wtap.c	Tue Dec 18 08:44:59 2012	(r244389)
> M> @@ -334,6 +334,10 @@ wtap_vap_create(struct ieee80211com *ic,
> M>  	vap = (struct ieee80211vap *) avp;
> M>  	error = ieee80211_vap_setup(ic, vap, name, unit, IEEE80211_M_MBSS,
> M>  	    flags | IEEE80211_CLONE_NOBEACONS, bssid, mac);
> M> +	if (error) {
> M> +		free((struct wtap_vap*) vap, M_80211_VAP);
> M> +		return NULL;
> M> +	}
> M>
> M>  	/* override various methods */
> M>  	avp->av_recv_mgmt = vap->iv_recv_mgmt;
>
> You don't need to cast first argument of free(9). And you don't need a cast
> before malloc(9) as well.

A cast might be needed if free()'s arg is a point to constant storage.
This is not the case here.

> ...
> Also, more stylish would be to supply to free() the same variable that was
> assigned at malloc(9) call, in this particular case it is "avp".

Another style bug is associated with this.  free() does's take args of
type struct wtap_vap*.  Casting to that converts vap back to the type
of avp, but not to either original type returned by malloc() or the
type taken by free().

Also, in KNF:
- casts are not followed by a space
- '*' (in almost all contexts, including the above) is preceded by a space.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20121219234351.A1351>