svn commit: r244389 - head/sys/dev/wtap

Bruce Evans brde at optusnet.com.au
Wed Dec 19 12:52:34 UTC 2012


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


More information about the svn-src-all mailing list