mirror of
https://github.com/SoftEtherVPN/SoftEtherVPN.git
synced 2026-05-02 11:49:33 +03:00
Compare commits
5 Commits
193ebdba12
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 41c85953c1 | |||
| d77c258dac | |||
| 7bb2a6753a | |||
| cf559617b1 | |||
| 11fa0a4891 |
-25
@@ -1,25 +0,0 @@
|
|||||||
FreeBSD_task:
|
|
||||||
matrix:
|
|
||||||
env:
|
|
||||||
SSL: openssl
|
|
||||||
OPENSSL_ROOT_DIR: /usr/local
|
|
||||||
env:
|
|
||||||
SSL: openssl36
|
|
||||||
OPENSSL_ROOT_DIR: /usr/local
|
|
||||||
env:
|
|
||||||
# base openssl
|
|
||||||
SSL:
|
|
||||||
matrix:
|
|
||||||
freebsd_instance:
|
|
||||||
image_family: freebsd-14-3
|
|
||||||
prepare_script:
|
|
||||||
- pkg install -y pkgconf cmake git libsodium cpu_features $SSL
|
|
||||||
- git submodule update --init --recursive
|
|
||||||
configure_script:
|
|
||||||
- CMAKE_FLAGS="-DUSE_SYSTEM_CPU_FEATURES=1" CFLAGS="-I/usr/local/include/cpu_features" ./configure
|
|
||||||
build_script:
|
|
||||||
- make -j $(sysctl -n hw.ncpu || echo 4) -C build
|
|
||||||
test_script:
|
|
||||||
- ldd build/vpnserver
|
|
||||||
- .ci/memory-leak-test.sh
|
|
||||||
- .ci/vpntools-check.sh
|
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
name: FreeBSD
|
||||||
|
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build_and_test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- ssl: openssl # currently 3.0
|
||||||
|
openssl_root_dir: /usr/local
|
||||||
|
- ssl: openssl36
|
||||||
|
openssl_root_dir: /usr/local
|
||||||
|
- ssl: # base openssl
|
||||||
|
openssl_root_dir:
|
||||||
|
name: FreeBSD with ${{ matrix.ssl || 'base openssl' }}
|
||||||
|
env:
|
||||||
|
SSL: ${{ matrix.ssl }}
|
||||||
|
OPENSSL_ROOT_DIR: ${{ matrix.openssl_root_dir }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v6
|
||||||
|
with:
|
||||||
|
submodules: true
|
||||||
|
- uses: vmactions/freebsd-vm@v1
|
||||||
|
with:
|
||||||
|
envs: 'OPENSSL_ROOT_DIR SSL'
|
||||||
|
prepare: |
|
||||||
|
pkg install -y $SSL pkgconf cmake git libsodium cpu_features
|
||||||
|
run: |
|
||||||
|
CMAKE_FLAGS="-DUSE_SYSTEM_CPU_FEATURES=1" CFLAGS="-I/usr/local/include/cpu_features" ./configure
|
||||||
|
make -j $(nproc || echo 4) -C build
|
||||||
|
ldd build/vpnserver
|
||||||
|
.ci/memory-leak-test.sh
|
||||||
|
.ci/vpntools-check.sh
|
||||||
@@ -3615,6 +3615,8 @@ bool PPPProcessEAPTlsResponse(PPP_SESSION *p, PPP_EAP *eap_packet, UINT eapSize)
|
|||||||
dataBuffer = eap_packet->Tls.TlsDataWithLength.Data;
|
dataBuffer = eap_packet->Tls.TlsDataWithLength.Data;
|
||||||
dataSize -= 4;
|
dataSize -= 4;
|
||||||
tlsLength = Endian32(eap_packet->Tls.TlsDataWithLength.TlsLength);
|
tlsLength = Endian32(eap_packet->Tls.TlsDataWithLength.TlsLength);
|
||||||
|
// Let's just clamp it to a safe size to avoid DoS (GHSA-q5g3-qhc6-pr3h)
|
||||||
|
tlsLength = MIN(tlsLength, PPP_MRU_MAX * 10);
|
||||||
}
|
}
|
||||||
/*Debug("=======RECV EAP-TLS PACKET DUMP=======\n");
|
/*Debug("=======RECV EAP-TLS PACKET DUMP=======\n");
|
||||||
for (i = 0; i < dataSize; i++)
|
for (i = 0; i < dataSize; i++)
|
||||||
@@ -3659,10 +3661,13 @@ bool PPPProcessEAPTlsResponse(PPP_SESSION *p, PPP_EAP *eap_packet, UINT eapSize)
|
|||||||
sizeLeft = GetMemSize(p->Eap_TlsCtx.CachedBufferRecv);
|
sizeLeft = GetMemSize(p->Eap_TlsCtx.CachedBufferRecv);
|
||||||
sizeLeft -= (UINT)(p->Eap_TlsCtx.CachedBufferRecvPntr - p->Eap_TlsCtx.CachedBufferRecv);
|
sizeLeft -= (UINT)(p->Eap_TlsCtx.CachedBufferRecvPntr - p->Eap_TlsCtx.CachedBufferRecv);
|
||||||
|
|
||||||
|
if (sizeLeft > 0)
|
||||||
|
{
|
||||||
Copy(p->Eap_TlsCtx.CachedBufferRecvPntr, dataBuffer, MIN(sizeLeft, dataSize));
|
Copy(p->Eap_TlsCtx.CachedBufferRecvPntr, dataBuffer, MIN(sizeLeft, dataSize));
|
||||||
|
|
||||||
p->Eap_TlsCtx.CachedBufferRecvPntr += MIN(sizeLeft, dataSize);
|
p->Eap_TlsCtx.CachedBufferRecvPntr += MIN(sizeLeft, dataSize);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// If we got a cached buffer, we should feed the FIFOs via it
|
// If we got a cached buffer, we should feed the FIFOs via it
|
||||||
if (p->Eap_TlsCtx.CachedBufferRecv != NULL)
|
if (p->Eap_TlsCtx.CachedBufferRecv != NULL)
|
||||||
@@ -3783,6 +3788,8 @@ bool PPPProcessEAPTlsResponse(PPP_SESSION *p, PPP_EAP *eap_packet, UINT eapSize)
|
|||||||
}
|
}
|
||||||
AcUnlock(hub);
|
AcUnlock(hub);
|
||||||
ReleaseHub(hub);
|
ReleaseHub(hub);
|
||||||
|
// Making sure the stale pntr is cleared and can't be reused (GHSA-7437-282p-7465)
|
||||||
|
hub = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (found == false)
|
if (found == false)
|
||||||
@@ -3790,8 +3797,6 @@ bool PPPProcessEAPTlsResponse(PPP_SESSION *p, PPP_EAP *eap_packet, UINT eapSize)
|
|||||||
PPP_PACKET* pack;
|
PPP_PACKET* pack;
|
||||||
UINT identificator = p->Eap_PacketId;
|
UINT identificator = p->Eap_PacketId;
|
||||||
|
|
||||||
ReleaseHub(hub);
|
|
||||||
|
|
||||||
PPPSetStatus(p, PPP_STATUS_AUTH_FAIL);
|
PPPSetStatus(p, PPP_STATUS_AUTH_FAIL);
|
||||||
|
|
||||||
pack = ZeroMalloc(sizeof(PPP_PACKET));
|
pack = ZeroMalloc(sizeof(PPP_PACKET));
|
||||||
|
|||||||
Reference in New Issue
Block a user