[PATCH] Fix crash on big-endian systems during scan
authorPavel Roskin <proski@gnu.org>
Mon, 17 Apr 2006 15:36:43 +0000 (11:36 -0400)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 24 Apr 2006 19:20:22 +0000 (15:20 -0400)
The original code was doing arithmetics on a little-endian value.
Reported by Stelios Koroneos <stelios@stelioscellar.com>

Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/hostap/hostap_ioctl.c

index 8b37e824dfcbffd18fcf64bcd3c3fc625bd1446b..8399de581893f32412f12684af602959421db50c 100644 (file)
@@ -1860,7 +1860,7 @@ static char * __prism2_translate_scan(local_info_t *local,
        memset(&iwe, 0, sizeof(iwe));
        iwe.cmd = SIOCGIWFREQ;
        if (scan) {
-               chan = scan->chid;
+               chan = le16_to_cpu(scan->chid);
        } else if (bss) {
                chan = bss->chan;
        } else {
@@ -1868,7 +1868,7 @@ static char * __prism2_translate_scan(local_info_t *local,
        }
 
        if (chan > 0) {
-               iwe.u.freq.m = freq_list[le16_to_cpu(chan - 1)] * 100000;
+               iwe.u.freq.m = freq_list[chan - 1] * 100000;
                iwe.u.freq.e = 1;
                current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe,
                                                  IW_EV_FREQ_LEN);