]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
dbus: Fix endianness bug in Frequency and Signal properties
authorSylvestre Gallon <ccna.syl@gmail.com>
Sat, 28 Jan 2012 15:57:48 +0000 (17:57 +0200)
committerJouni Malinen <j@w1.fi>
Sat, 28 Jan 2012 15:57:48 +0000 (17:57 +0200)
These properties did not work on big endian PowerPC (always 100% for
Signal and 0 for Frequency) due to endianness problem (u32 to u16 data
loss).

Signed-off-by: Sylvestre Gallon <ccna.syl@gmail.com>
wpa_supplicant/dbus/dbus_new_handlers.c

index cefad7cb0b3abc661a462c5939f90df2de737347..621653f38abc9e282b8b6ca732c0869e1d1ef7f0 100644 (file)
@@ -2867,13 +2867,15 @@ dbus_bool_t wpas_dbus_getter_bss_signal(DBusMessageIter *iter,
 {
        struct bss_handler_args *args = user_data;
        struct wpa_bss *res;
+       s16 level;
 
        res = get_bss_helper(args, error, __func__);
        if (!res)
                return FALSE;
 
+       level = (s16) res->level;
        return wpas_dbus_simple_property_getter(iter, DBUS_TYPE_INT16,
-                                               &res->level, error);
+                                               &level, error);
 }
 
 
@@ -2891,13 +2893,15 @@ dbus_bool_t wpas_dbus_getter_bss_frequency(DBusMessageIter *iter,
 {
        struct bss_handler_args *args = user_data;
        struct wpa_bss *res;
+       u16 freq;
 
        res = get_bss_helper(args, error, __func__);
        if (!res)
                return FALSE;
 
+       freq = (u16) res->freq;
        return wpas_dbus_simple_property_getter(iter, DBUS_TYPE_UINT16,
-                                               &res->freq, error);
+                                               &freq, error);
 }