1
0
mirror of https://github.com/SoftEtherVPN/SoftEtherVPN.git synced 2024-11-25 02:49:52 +03:00

Merge pull request #1981 from hiura2023/master

Fix 'RemoveDefGwOnDhcpForLocalhost' function No.2: Change the minimum size of DHCP reply
This commit is contained in:
Ilya Shipitsin 2024-04-16 22:31:21 +02:00 committed by GitHub
commit 5cf45ad62b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -4168,6 +4168,7 @@ BUF *DhcpModify(DHCP_MODIFY_OPTION *m, void *data, UINT size)
LIST *opt_list2 = NULL; LIST *opt_list2 = NULL;
UINT src_size = size; UINT src_size = size;
UINT i; UINT i;
UINT dhcp_min_size;
// Validate arguments // Validate arguments
if (m == NULL || data == NULL || size == 0) if (m == NULL || data == NULL || size == 0)
{ {
@ -4270,11 +4271,13 @@ BUF *DhcpModify(DHCP_MODIFY_OPTION *m, void *data, UINT size)
// Rewrite if anything changes. Do not rewrite if there is no change // Rewrite if anything changes. Do not rewrite if there is no change
ret_ok = true; ret_ok = true;
if (ret->Size < DHCP_MIN_SIZE) // If src_size is greater than DHCP_MIN_SIZE, then use the src_size as minimum size of DHCP.
dhcp_min_size = MAX(src_size, DHCP_MIN_SIZE);
if (ret->Size < dhcp_min_size)
{ {
// Padding // Padding
UCHAR *pad_buf; UCHAR *pad_buf;
UINT pad_size = DHCP_MIN_SIZE - ret->Size; UINT pad_size = dhcp_min_size - ret->Size;
pad_buf = ZeroMalloc(pad_size); pad_buf = ZeroMalloc(pad_size);