aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2013-02-17 21:14:14 +0000
committerGuy Harris <guy@alum.mit.edu>2013-02-17 21:14:14 +0000
commit3cd82d13c141bdc2f62a04515dd63235a26f78ac (patch)
treec913aff48846e5d79fa16f9954b3f5a8200ee7df
parent61f7b3e031739780174acc06f2c413f59ad141bb (diff)
downloadwireshark-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.h5
-rw-r--r--airpcap_loader.c6
2 files changed, 7 insertions, 4 deletions
diff --git a/airpcap.h b/airpcap.h
index dd245451dc..d9df93a290 100644
--- a/airpcap.h
+++ b/airpcap.h
@@ -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;