diff options
author | Guy Harris <guy@alum.mit.edu> | 2013-02-17 21:14:14 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2013-02-17 21:14:14 +0000 |
commit | 3cd82d13c141bdc2f62a04515dd63235a26f78ac (patch) | |
tree | c913aff48846e5d79fa16f9954b3f5a8200ee7df | |
parent | 61f7b3e031739780174acc06f2c413f59ad141bb (diff) | |
download | wireshark-3cd82d13c141bdc2f62a04515dd63235a26f78ac.tar.gz wireshark-3cd82d13c141bdc2f62a04515dd63235a26f78ac.tar.bz2 wireshark-3cd82d13c141bdc2f62a04515dd63235a26f78ac.zip |
Add a macro to calculate, from the size of an AirpcapKeysCollection
structure, the number of keys in the key list, and use it.
svn path=/trunk/; revision=47718
-rw-r--r-- | airpcap.h | 5 | ||||
-rw-r--r-- | airpcap_loader.c | 6 |
2 files changed, 7 insertions, 4 deletions
@@ -190,7 +190,10 @@ typedef struct _AirpcapKeysCollection AirpcapKey Keys[0]; /* < Array of nKeys keys. */ } AirpcapKeysCollection, *PAirpcapKeysCollection; -#define AirpcapKeysCollectionSize(nKeys) (sizeof(AirpcapKeysCollection) + ((nKeys) * sizeof(AirpcapKey))) +#define AirpcapKeysCollectionSize(nKeys) \ + (sizeof(AirpcapKeysCollection) + ((nKeys) * sizeof(AirpcapKey))) +#define AirpcapKeysCollectionSizeToKeyCount(size) \ + (guint)(((size) - AirpcapKeysCollectionSize(0))/sizeof(AirpcapKey)) /*! \brief Packet header. diff --git a/airpcap_loader.c b/airpcap_loader.c index fca1d3179d..bd24eb6403 100644 --- a/airpcap_loader.c +++ b/airpcap_loader.c @@ -568,7 +568,7 @@ save_wlan_driver_wep_keys(void) /* Number of keys in key list */ if (fake_info_if->keysCollectionSize != 0) - keys_in_list = (guint)((fake_info_if->keysCollectionSize - sizeof(AirpcapKeysCollection))/sizeof(AirpcapKey)); + keys_in_list = AirpcapKeysCollectionSizeToKeyCount(fake_info_if->keysCollectionSize); else keys_in_list = 0; @@ -1775,7 +1775,7 @@ get_airpcap_device_keys(airpcap_if_info_t* info_if) /* Number of keys in key list */ if (info_if->keysCollectionSize != 0) - keys_in_list = (guint)((info_if->keysCollectionSize - sizeof(AirpcapKeysCollection))/sizeof(AirpcapKey)); + keys_in_list = AirpcapKeysCollectionSizeToKeyCount(info_if->keysCollectionSize); else keys_in_list = 0; @@ -1847,7 +1847,7 @@ get_airpcap_driver_keys(void) /* Number of keys in key list */ if (fake_info_if->keysCollectionSize != 0) - keys_in_list = (guint)((fake_info_if->keysCollectionSize - sizeof(AirpcapKeysCollection))/sizeof(AirpcapKey)); + keys_in_list = AirpcapKeysCollectionSizeToKeyCount(fake_info_if->keysCollectionSize); else keys_in_list = 0; |