]> git.ipfire.org Git - thirdparty/iw.git/commitdiff
iw: Fix calculation of fractional multicast rates
authorJo-Philipp Wich <jow@openwrt.org>
Sun, 22 May 2011 13:09:51 +0000 (15:09 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 30 May 2011 16:46:01 +0000 (18:46 +0200)
Due to missing brackets around the "(int) rate * 10" expression
the float value of "rate" is converted to an integer first and
then multiplied which results for example in "50" instead of the
expected "55" for a give rate of 5.5 Mbps, resulting in an invalid
argument error from iw.

This patch simply puts the multiplication expression in brackets,
so that the type cast is performed on the result and not the
first operand.

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
ibss.c

diff --git a/ibss.c b/ibss.c
index ca8a4ec8262870018e54be0f745fbdbc55a28b7e..b70dee3a1f734fdc683c2d2a74e9ead31eae5e10 100644 (file)
--- a/ibss.c
+++ b/ibss.c
@@ -104,7 +104,7 @@ static int join_ibss(struct nl80211_state *state,
                if (*end != '\0')
                        return 1;
 
-               NLA_PUT_U32(msg, NL80211_ATTR_MCAST_RATE, (int) rate * 10);
+               NLA_PUT_U32(msg, NL80211_ATTR_MCAST_RATE, (int)(rate * 10));
                argv++;
                argc--;
        }