test: Add WPA_TRACE reference check for driver ctx
This will catch too early freeing of the context pointer before the driver wrapper has been deinitialized.
This commit is contained in:
parent
83922c2d34
commit
f78feb6a72
1 changed files with 10 additions and 6 deletions
|
@ -18,7 +18,7 @@
|
|||
#include <winsock2.h>
|
||||
#endif /* CONFIG_NATIVE_WINDOWS */
|
||||
|
||||
#include "includes.h"
|
||||
#include "utils/includes.h"
|
||||
|
||||
#ifndef CONFIG_NATIVE_WINDOWS
|
||||
#include <sys/un.h>
|
||||
|
@ -27,12 +27,13 @@
|
|||
#define DRIVER_TEST_UNIX
|
||||
#endif /* CONFIG_NATIVE_WINDOWS */
|
||||
|
||||
#include "common.h"
|
||||
#include "driver.h"
|
||||
#include "l2_packet/l2_packet.h"
|
||||
#include "eloop.h"
|
||||
#include "crypto/sha1.h"
|
||||
#include "utils/common.h"
|
||||
#include "utils/eloop.h"
|
||||
#include "utils/trace.h"
|
||||
#include "common/ieee802_11_defs.h"
|
||||
#include "crypto/sha1.h"
|
||||
#include "l2_packet/l2_packet.h"
|
||||
#include "driver.h"
|
||||
|
||||
|
||||
struct test_client_socket {
|
||||
|
@ -66,6 +67,7 @@ struct wpa_driver_test_global {
|
|||
struct wpa_driver_test_data {
|
||||
struct wpa_driver_test_global *global;
|
||||
void *ctx;
|
||||
WPA_TRACE_REF(ctx);
|
||||
char ifname[IFNAMSIZ + 1];
|
||||
u8 own_addr[ETH_ALEN];
|
||||
int test_socket;
|
||||
|
@ -1128,6 +1130,7 @@ static struct wpa_driver_test_data * test_alloc_data(void *ctx,
|
|||
}
|
||||
|
||||
drv->ctx = ctx;
|
||||
wpa_trace_add_ref(drv, ctx, ctx);
|
||||
os_strlcpy(drv->ifname, ifname, IFNAMSIZ);
|
||||
|
||||
/* Generate a MAC address to help testing with multiple STAs */
|
||||
|
@ -1972,6 +1975,7 @@ static void wpa_driver_test_deinit(void *priv)
|
|||
for (i = 0; i < MAX_SCAN_RESULTS; i++)
|
||||
os_free(drv->scanres[i]);
|
||||
os_free(drv->probe_req_ie);
|
||||
wpa_trace_remove_ref(drv, ctx, drv->ctx);
|
||||
os_free(drv);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue