aboutsummaryrefslogtreecommitdiffstats
path: root/api/wintun.h
diff options
context:
space:
mode:
authorSimon Rozman <simon@rozman.si>2020-10-31 18:13:36 +0100
committerSimon Rozman <simon@rozman.si>2020-10-31 19:11:57 +0100
commit60ad907b99ceca0dbeab6123dcc0a44d8bfad29d (patch)
tree2ad0307795fc31b3e3653199f2c1e70a98a88999 /api/wintun.h
parentapi: fix up console writing for debug (diff)
downloadwintun-60ad907b99ceca0dbeab6123dcc0a44d8bfad29d.tar.xz
wintun-60ad907b99ceca0dbeab6123dcc0a44d8bfad29d.zip
api: check buffer overflows in runtime
Signed-off-by: Simon Rozman <simon@rozman.si>
Diffstat (limited to 'api/wintun.h')
-rw-r--r--api/wintun.h32
1 files changed, 15 insertions, 17 deletions
diff --git a/api/wintun.h b/api/wintun.h
index 6a65aee..cb9705e 100644
--- a/api/wintun.h
+++ b/api/wintun.h
@@ -27,9 +27,10 @@ typedef void *WINTUN_ADAPTER_HANDLE;
/**
* Creates a Wintun adapter.
*
- * @param Pool Name of the adapter pool.
+ * @param Pool Name of the adapter pool. Zero-terminated string of up to WINTUN_MAX_POOL-1 characters.
*
- * @param Name The requested name of the adapter.
+ * @param Name The requested name of the adapter. Zero-terminated string of up to MAX_ADAPTER_NAME-1
+ * characters.
*
* @param RequestedGUID The GUID of the created network adapter, which then influences NLA generation
* deterministically. If it is set to NULL, the GUID is chosen by the system at random, and hence
@@ -45,8 +46,8 @@ typedef void *WINTUN_ADAPTER_HANDLE;
* @return ERROR_SUCCESS on success; Win32 error code otherwise.
*/
typedef WINTUN_STATUS(WINAPI *WINTUN_CREATE_ADAPTER_FUNC)(
- _In_z_count_c_(WINTUN_MAX_POOL) const WCHAR *Pool,
- _In_z_count_c_(MAX_ADAPTER_NAME) const WCHAR *Name,
+ _In_z_ const WCHAR *Pool,
+ _In_z_ const WCHAR *Name,
_In_opt_ const GUID *RequestedGUID,
_Out_ WINTUN_ADAPTER_HANDLE *Adapter,
_Out_opt_ BOOL *RebootRequired);
@@ -83,7 +84,7 @@ typedef BOOL(CALLBACK *WINTUN_ENUM_FUNC)(_In_ WINTUN_ADAPTER_HANDLE Adapter, _In
/**
* Enumerates all Wintun adapters.
*
- * @param Pool Name of the adapter pool.
+ * @param Pool Name of the adapter pool. Zero-terminated string of up to WINTUN_MAX_POOL-1 characters.
*
* @param Func Callback function. To continue enumeration, the callback function must return TRUE; to stop
* enumeration, it must return FALSE.
@@ -92,10 +93,8 @@ typedef BOOL(CALLBACK *WINTUN_ENUM_FUNC)(_In_ WINTUN_ADAPTER_HANDLE Adapter, _In
*
* @return ERROR_SUCCESS on success; Win32 error code otherwise.
*/
-typedef WINTUN_STATUS(WINAPI *WINTUN_ENUM_ADAPTERS_FUNC)(
- _In_z_count_c_(WINTUN_MAX_POOL) const WCHAR *Pool,
- _In_ WINTUN_ENUM_FUNC Func,
- _In_ LPARAM Param);
+typedef WINTUN_STATUS(
+ WINAPI *WINTUN_ENUM_ADAPTERS_FUNC)(_In_z_ const WCHAR *Pool, _In_ WINTUN_ENUM_FUNC Func, _In_ LPARAM Param);
/**
* Releases Wintun adapter resources.
@@ -107,9 +106,9 @@ typedef void(WINAPI *WINTUN_FREE_ADAPTER_FUNC)(_In_ WINTUN_ADAPTER_HANDLE Adapte
/**
* Finds a Wintun adapter by its name.
*
- * @param Pool Name of the adapter pool.
+ * @param Pool Name of the adapter pool. Zero-terminated string of up to WINTUN_MAX_POOL-1 characters.
*
- * @param Name Adapter name.
+ * @param Name Adapter name. Zero-terminated string of up to MAX_ADAPTER_NAME-1 characters.
*
* @param Adapter Pointer to a handle to receive the adapter handle. Must be released with WintunFreeAdapter.
*
@@ -117,8 +116,8 @@ typedef void(WINAPI *WINTUN_FREE_ADAPTER_FUNC)(_In_ WINTUN_ADAPTER_HANDLE Adapte
* if adapter is found but not a Wintun-class or not a member of the pool; Win32 error code otherwise
*/
typedef WINTUN_STATUS(WINAPI *WINTUN_GET_ADAPTER_FUNC)(
- _In_z_count_c_(WINTUN_MAX_POOL) const WCHAR *Pool,
- _In_z_count_c_(MAX_ADAPTER_NAME) const WCHAR *Name,
+ _In_z_ const WCHAR *Pool,
+ _In_z_ const WCHAR *Name,
_Out_ WINTUN_ADAPTER_HANDLE *Adapter);
/**
@@ -188,13 +187,12 @@ typedef WINTUN_STATUS(WINAPI *WINTUN_GET_VERSION_FUNC)(
*
* @param Adapter Adapter handle obtained with WintunGetAdapter or WintunCreateAdapter
*
- * @param Name Adapter name
+ * @param Name Adapter name. Zero-terminated string of up to MAX_ADAPTER_NAME-1 characters.
*
* @return ERROR_SUCCESS on success; Win32 error code otherwise.
*/
-typedef WINTUN_STATUS(WINAPI *WINTUN_SET_ADAPTER_NAME_FUNC)(
- _In_ WINTUN_ADAPTER_HANDLE Adapter,
- _In_z_count_c_(MAX_ADAPTER_NAME) const WCHAR *Name);
+typedef WINTUN_STATUS(
+ WINAPI *WINTUN_SET_ADAPTER_NAME_FUNC)(_In_ WINTUN_ADAPTER_HANDLE Adapter, _In_z_ const WCHAR *Name);
typedef enum _WINTUN_LOGGER_LEVEL
{