aboutsummaryrefslogtreecommitdiff
path: root/src/openvpnmsica
diff options
context:
space:
mode:
authorSimon Rozman2019-02-24 19:12:52 +0100
committerGert Doering2019-02-28 15:46:24 +0100
commitf75351da2974dac10baca5fa83c18be7f27c73cf (patch)
treeb697d0a5edfe30591840e8edea9ae71b312f98c7 /src/openvpnmsica
parenta35d517f4893b3967783ad7926a7edd08f9f59d3 (diff)
downloadopenvpn-f75351da2974dac10baca5fa83c18be7f27c73cf.zip
openvpn-f75351da2974dac10baca5fa83c18be7f27c73cf.tar.gz
Disambiguate thread local storage references from TLS
Since OpenVPN is security software, "TLS" usually stands for Transport Layer Security. Furthermore, repetitive copy&paste code was refactored using a macro. This patch follows Gert's recommendations from [openvpn-devel]. Signed-off-by: Simon Rozman <simon@rozman.si> Message-ID: <20190117155829.GA92142@greenie.muc.de> Acked-by: Gert Doering <gert@greenie.muc.de> Message-Id: <20190224181252.43996-1-simon@rozman.si 20190117155829.GA92142@greenie.muc.de> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg18230.html Signed-off-by: Gert Doering <gert@greenie.muc.de>
Diffstat (limited to 'src/openvpnmsica')
-rw-r--r--src/openvpnmsica/dllmain.c30
-rw-r--r--src/openvpnmsica/openvpnmsica.c20
-rw-r--r--src/openvpnmsica/openvpnmsica.h18
3 files changed, 34 insertions, 34 deletions
diff --git a/src/openvpnmsica/dllmain.c b/src/openvpnmsica/dllmain.c
index 50231e4..5f5092a 100644
--- a/src/openvpnmsica/dllmain.c
+++ b/src/openvpnmsica/dllmain.c
@@ -36,7 +36,7 @@
#include <tchar.h>
-DWORD openvpnmsica_tlsidx_session = TLS_OUT_OF_INDEXES;
+DWORD openvpnmsica_thread_data_idx = TLS_OUT_OF_INDEXES;
/**
@@ -54,9 +54,9 @@ DllMain(
switch (dwReason)
{
case DLL_PROCESS_ATTACH:
- /* Allocate TLS index. */
- openvpnmsica_tlsidx_session = TlsAlloc();
- if (openvpnmsica_tlsidx_session == TLS_OUT_OF_INDEXES)
+ /* Allocate thread local storage index. */
+ openvpnmsica_thread_data_idx = TlsAlloc();
+ if (openvpnmsica_thread_data_idx == TLS_OUT_OF_INDEXES)
{
return FALSE;
}
@@ -64,25 +64,25 @@ DllMain(
case DLL_THREAD_ATTACH:
{
- /* Create TLS data. */
- struct openvpnmsica_tls_data *s = (struct openvpnmsica_tls_data *)malloc(sizeof(struct openvpnmsica_tls_data));
- memset(s, 0, sizeof(struct openvpnmsica_tls_data));
- TlsSetValue(openvpnmsica_tlsidx_session, s);
+ /* Create thread local storage data. */
+ struct openvpnmsica_thread_data *s = (struct openvpnmsica_thread_data *)malloc(sizeof(struct openvpnmsica_thread_data));
+ memset(s, 0, sizeof(struct openvpnmsica_thread_data));
+ TlsSetValue(openvpnmsica_thread_data_idx, s);
break;
}
case DLL_PROCESS_DETACH:
- if (openvpnmsica_tlsidx_session != TLS_OUT_OF_INDEXES)
+ if (openvpnmsica_thread_data_idx != TLS_OUT_OF_INDEXES)
{
- /* Free TLS data and TLS index. */
- free(TlsGetValue(openvpnmsica_tlsidx_session));
- TlsFree(openvpnmsica_tlsidx_session);
+ /* Free thread local storage data and index. */
+ free(TlsGetValue(openvpnmsica_thread_data_idx));
+ TlsFree(openvpnmsica_thread_data_idx);
}
break;
case DLL_THREAD_DETACH:
- /* Free TLS data. */
- free(TlsGetValue(openvpnmsica_tlsidx_session));
+ /* Free thread local storage data. */
+ free(TlsGetValue(openvpnmsica_thread_data_idx));
break;
}
@@ -105,7 +105,7 @@ x_msg_va(const unsigned int flags, const char *format, va_list arglist)
/* Secure last error before it is overridden. */
DWORD dwResult = (flags & M_ERRNO) != 0 ? GetLastError() : ERROR_SUCCESS;
- struct openvpnmsica_tls_data *s = (struct openvpnmsica_tls_data *)TlsGetValue(openvpnmsica_tlsidx_session);
+ struct openvpnmsica_thread_data *s = (struct openvpnmsica_thread_data *)TlsGetValue(openvpnmsica_thread_data_idx);
if (s->hInstall == 0)
{
/* No MSI session, no fun. */
diff --git a/src/openvpnmsica/openvpnmsica.c b/src/openvpnmsica/openvpnmsica.c
index 3232a47..b8108b9 100644
--- a/src/openvpnmsica/openvpnmsica.c
+++ b/src/openvpnmsica/openvpnmsica.c
@@ -435,9 +435,7 @@ FindSystemInfo(_In_ MSIHANDLE hInstall)
BOOL bIsCoInitialized = SUCCEEDED(CoInitialize(NULL));
- /* Set MSI session handle in TLS. */
- struct openvpnmsica_tls_data *s = (struct openvpnmsica_tls_data *)TlsGetValue(openvpnmsica_tlsidx_session);
- s->hInstall = hInstall;
+ OPENVPNMSICA_SAVE_MSI_SESSION(hInstall);
openvpnmsica_set_driver_certification(hInstall);
openvpnmsica_set_openvpnserv_state(hInstall);
@@ -462,9 +460,7 @@ FindTAPInterfaces(_In_ MSIHANDLE hInstall)
UINT uiResult;
BOOL bIsCoInitialized = SUCCEEDED(CoInitialize(NULL));
- /* Set MSI session handle in TLS. */
- struct openvpnmsica_tls_data *s = (struct openvpnmsica_tls_data *)TlsGetValue(openvpnmsica_tlsidx_session);
- s->hInstall = hInstall;
+ OPENVPNMSICA_SAVE_MSI_SESSION(hInstall);
/* Get available network interfaces. */
struct tap_interface_node *pInterfaceList = NULL;
@@ -677,9 +673,7 @@ StartOpenVPNGUI(_In_ MSIHANDLE hInstall)
UINT uiResult;
BOOL bIsCoInitialized = SUCCEEDED(CoInitialize(NULL));
- /* Set MSI session handle in TLS. */
- struct openvpnmsica_tls_data *s = (struct openvpnmsica_tls_data *)TlsGetValue(openvpnmsica_tlsidx_session);
- s->hInstall = hInstall;
+ OPENVPNMSICA_SAVE_MSI_SESSION(hInstall);
/* Create and populate a MSI record. */
MSIHANDLE hRecord = MsiCreateRecord(1);
@@ -759,9 +753,7 @@ EvaluateTAPInterfaces(_In_ MSIHANDLE hInstall)
UINT uiResult;
BOOL bIsCoInitialized = SUCCEEDED(CoInitialize(NULL));
- /* Set MSI session handle in TLS. */
- struct openvpnmsica_tls_data *s = (struct openvpnmsica_tls_data *)TlsGetValue(openvpnmsica_tlsidx_session);
- s->hInstall = hInstall;
+ OPENVPNMSICA_SAVE_MSI_SESSION(hInstall);
/* List of deferred custom actions EvaluateTAPInterfaces prepares operation sequence for. */
static const LPCTSTR szActionNames[] =
@@ -1052,9 +1044,7 @@ ProcessDeferredAction(_In_ MSIHANDLE hInstall)
UINT uiResult;
BOOL bIsCoInitialized = SUCCEEDED(CoInitialize(NULL));
- /* Set MSI session handle in TLS. */
- struct openvpnmsica_tls_data *s = (struct openvpnmsica_tls_data *)TlsGetValue(openvpnmsica_tlsidx_session);
- s->hInstall = hInstall;
+ OPENVPNMSICA_SAVE_MSI_SESSION(hInstall);
BOOL bIsCleanup = MsiGetMode(hInstall, MSIRUNMODE_COMMIT) || MsiGetMode(hInstall, MSIRUNMODE_ROLLBACK);
diff --git a/src/openvpnmsica/openvpnmsica.h b/src/openvpnmsica/openvpnmsica.h
index 382064b..d6a0912 100644
--- a/src/openvpnmsica/openvpnmsica.h
+++ b/src/openvpnmsica/openvpnmsica.h
@@ -33,18 +33,28 @@
/**
- * TLS data
+ * Thread local storage data
*/
-struct openvpnmsica_tls_data
+struct openvpnmsica_thread_data
{
MSIHANDLE hInstall; /** Handle to the installation session. */
};
/**
- * MSI session handle TLS index
+ * MSI session handle thread local storage index
*/
-extern DWORD openvpnmsica_tlsidx_session;
+extern DWORD openvpnmsica_thread_data_idx;
+
+
+/**
+ * Set MSI session handle in thread local storage.
+ */
+#define OPENVPNMSICA_SAVE_MSI_SESSION(hInstall) \
+{ \
+ struct openvpnmsica_thread_data *s = (struct openvpnmsica_thread_data *)TlsGetValue(openvpnmsica_thread_data_idx); \
+ s->hInstall = (hInstall); \
+}
/*