1
0
mirror of https://github.com/SoftEtherVPN/SoftEtherVPN.git synced 2024-11-26 11:29:53 +03:00

src/Cedar/Protocol, src/Cedar/Session: cleanup, remove unused functions, variables,

resolve possible null pointer dereference

found by cppcheck

[src/Cedar/Protocol.c:3138] -> [src/Cedar/Protocol.c:3071]: (warning) Either the condition 's!=NULL' is redundant or there is possible null pointer dereference: s.
[src/Cedar/Protocol.c:916]: (style) Variable 'save' is assigned a value that is never used.
[src/Cedar/Protocol.c:6242]: (style) Variable 'size' is assigned a value that is never used.
[src/Cedar/Protocol.c:778]: (style) Variable 'old_disable' is assigned a value that is never used.
[src/Cedar/Protocol.c:1021]: (style) Variable 'save' is assigned a value that is never used.
[src/Cedar/Protocol.c:3708]: (style) Variable 'is_vgc' is assigned a value that is never used.
[src/Cedar/Protocol.c:5785]: (style) Variable 's' is assigned a value that is never used.
[src/Cedar/Protocol.c:6164]: (style) The function 'SocksConnectEx' is never used.
[src/Cedar/Protocol.c:907]: (style) The function 'CompareNodeInfo' is never used.
[src/Cedar/Protocol.c:6968]: (style) The function 'ProxyConnect' is never used.
[src/Cedar/Protocol.c:3986]: (style) The function 'SecureDelete' is never used.
[src/Cedar/Protocol.c:4042]: (style) The function 'SecureEnum' is never used.
[src/Cedar/Protocol.c:4127]: (style) The function 'SecureWrite' is never used.
[src/Cedar/Protocol.c:6463]: (style) The function 'SocksConnect' is never used.
[src/Cedar/Protocol.c:7185]: (style) The function 'TcpConnectEx2' is never used.
[src/Cedar/Protocol.c:7206]: (style) The function 'TcpIpConnect' is never used.
This commit is contained in:
Ilya Shipitsin 2018-11-10 14:18:18 +05:00
parent da13915d1e
commit 304893c139
3 changed files with 1 additions and 356 deletions

View File

@ -768,15 +768,12 @@ void UpdateClientThreadProc(THREAD *thread, void *param)
// Update the configuration of the update client // Update the configuration of the update client
void SetUpdateClientSetting(UPDATE_CLIENT *c, UPDATE_CLIENT_SETTING *s) void SetUpdateClientSetting(UPDATE_CLIENT *c, UPDATE_CLIENT_SETTING *s)
{ {
bool old_disable;
// Validate arguments // Validate arguments
if (c == NULL || s == NULL) if (c == NULL || s == NULL)
{ {
return; return;
} }
old_disable = c->Setting.DisableCheck;
Copy(&c->Setting, s, sizeof(UPDATE_CLIENT_SETTING)); Copy(&c->Setting, s, sizeof(UPDATE_CLIENT_SETTING));
Set(c->HaltEvent); Set(c->HaltEvent);
@ -903,95 +900,6 @@ void NodeInfoToStr(wchar_t *str, UINT size, NODE_INFO *info)
info->HubName, unique_id); info->HubName, unique_id);
} }
// Comparison of node information
bool CompareNodeInfo(NODE_INFO *a, NODE_INFO *b)
{
// Validate arguments
if (a == NULL || b == NULL)
{
return false;
}
if (StrCmp(a->ClientProductName, b->ClientProductName) != 0)
{
return false;
}
if (a->ClientProductVer != b->ClientProductVer)
{
return false;
}
if (a->ClientProductBuild != b->ClientProductBuild)
{
return false;
}
if (StrCmp(a->ServerProductName, b->ServerProductName) != 0)
{
return false;
}
if (a->ServerProductVer != b->ServerProductVer)
{
return false;
}
if (a->ServerProductBuild != b->ServerProductBuild)
{
return false;
}
if (StrCmp(a->ClientOsName, b->ClientOsName) != 0)
{
return false;
}
if (StrCmp(a->ClientOsVer, b->ClientOsVer) != 0)
{
return false;
}
if (StrCmp(a->ClientOsProductId, b->ClientOsProductId) != 0)
{
return false;
}
if (StrCmp(a->ClientHostname, b->ClientHostname) != 0)
{
return false;
}
if (a->ClientIpAddress != b->ClientIpAddress)
{
return false;
}
if (StrCmp(a->ServerHostname, b->ServerHostname) != 0)
{
return false;
}
if (a->ServerIpAddress != b->ServerIpAddress)
{
return false;
}
if (a->ServerPort != b->ServerPort)
{
return false;
}
if (StrCmp(a->ProxyHostname, b->ProxyHostname) != 0)
{
return false;
}
if (a->ProxyIpAddress != b->ProxyIpAddress)
{
return false;
}
if (a->ProxyPort != b->ProxyPort)
{
return false;
}
if (StrCmp(a->HubName, b->HubName) != 0)
{
return false;
}
if (Cmp(a->UniqueId, b->UniqueId, 16) != 0)
{
return false;
}
return true;
}
// Accept the password change // Accept the password change
UINT ChangePasswordAccept(CONNECTION *c, PACK *p) UINT ChangePasswordAccept(CONNECTION *c, PACK *p)
{ {
@ -1005,7 +913,6 @@ UINT ChangePasswordAccept(CONNECTION *c, PACK *p)
UCHAR check_secure_old_password[SHA1_SIZE]; UCHAR check_secure_old_password[SHA1_SIZE];
UINT ret = ERR_NO_ERROR; UINT ret = ERR_NO_ERROR;
HUB *hub; HUB *hub;
bool save = false;
// Validate arguments // Validate arguments
if (c == NULL || p == NULL) if (c == NULL || p == NULL)
{ {
@ -1107,7 +1014,6 @@ UINT ChangePasswordAccept(CONNECTION *c, PACK *p)
Copy(pw->NtLmSecureHash, new_password_ntlm, MD5_SIZE); Copy(pw->NtLmSecureHash, new_password_ntlm, MD5_SIZE);
} }
HLog(hub, "LH_CHANGE_PASSWORD_5", c->Name, username); HLog(hub, "LH_CHANGE_PASSWORD_5", c->Name, username);
save = true;
} }
} }
else else
@ -3162,7 +3068,7 @@ bool ServerAccept(CONNECTION *c)
PackAddBool(p, "suppress_client_update_notification", suppress_client_update_notification); PackAddBool(p, "suppress_client_update_notification", suppress_client_update_notification);
if (s->InProcMode) if (s != NULL && s->InProcMode)
{ {
if (IsZero(mschap_v2_server_response_20, sizeof(mschap_v2_server_response_20)) == false) if (IsZero(mschap_v2_server_response_20, sizeof(mschap_v2_server_response_20)) == false)
{ {
@ -3794,7 +3700,6 @@ void CreateNodeInfo(NODE_INFO *info, CONNECTION *c)
OS_INFO *os; OS_INFO *os;
char *product_id; char *product_id;
IP ip; IP ip;
bool is_vgc = false;
// Validate arguments // Validate arguments
if (c == NULL) if (c == NULL)
{ {
@ -3982,216 +3887,6 @@ SOCK *ClientAdditionalConnectToServer(CONNECTION *c)
return s; return s;
} }
// Remove the key and certificate in the secure device
UINT SecureDelete(UINT device_id, char *pin, char *cert_name, char *key_name)
{
SECURE *sec;
// Validate arguments
if (pin == NULL || device_id == 0)
{
return ERR_INTERNAL_ERROR;
}
// Open the device
sec = OpenSec(device_id);
if (sec == NULL)
{
return ERR_SECURE_DEVICE_OPEN_FAILED;
}
// Open the session
if (OpenSecSession(sec, 0) == false)
{
CloseSec(sec);
return ERR_SECURE_DEVICE_OPEN_FAILED;
}
// Login
if (LoginSec(sec, pin) == false)
{
CloseSecSession(sec);
CloseSec(sec);
return ERR_SECURE_PIN_LOGIN_FAILED;
}
// Delete the certificate
if (cert_name != NULL)
{
DeleteSecCert(sec, cert_name);
}
// Delete the Private key
if (key_name != NULL)
{
DeleteSecKey(sec, key_name);
}
// Log out
LogoutSec(sec);
// Close the session
CloseSecSession(sec);
// Close the device
CloseSec(sec);
return ERR_NO_ERROR;
}
// Enumerate certificates and keys in the secure device
UINT SecureEnum(UINT device_id, char *pin, TOKEN_LIST **cert_list, TOKEN_LIST **key_list)
{
SECURE *sec;
LIST *o;
LIST *cert_name_list, *key_name_list;
// Validate arguments
if (pin == NULL || device_id == 0 || cert_list == NULL || key_list == NULL)
{
return ERR_INTERNAL_ERROR;
}
// Open the device
sec = OpenSec(device_id);
if (sec == NULL)
{
return ERR_SECURE_DEVICE_OPEN_FAILED;
}
// Open the session
if (OpenSecSession(sec, 0) == false)
{
CloseSec(sec);
return ERR_SECURE_DEVICE_OPEN_FAILED;
}
// Login
if (LoginSec(sec, pin) == false)
{
CloseSecSession(sec);
CloseSec(sec);
return ERR_SECURE_PIN_LOGIN_FAILED;
}
// Enumerate objects
if ((o = EnumSecObject(sec)) != NULL)
{
UINT i;
cert_name_list = NewList(CompareStr);
key_name_list = NewList(CompareStr);
for (i = 0;i < LIST_NUM(o);i++)
{
SEC_OBJ *obj = LIST_DATA(o, i);
if (obj->Type == SEC_X)
{
Add(cert_name_list, CopyStr(obj->Name));
}
else if (obj->Type == SEC_K)
{
Add(key_name_list, CopyStr(obj->Name));
}
}
Sort(cert_name_list);
Sort(key_name_list);
*cert_list = ListToTokenList(cert_name_list);
*key_list = ListToTokenList(key_name_list);
// Release the memory
FreeStrList(cert_name_list);
FreeStrList(key_name_list);
FreeEnumSecObject(o);
}
else
{
*cert_list = NullToken();
*key_list = NullToken();
}
// Log out
LogoutSec(sec);
// Close the session
CloseSecSession(sec);
// Close the device
CloseSec(sec);
return ERR_NO_ERROR;
}
// Record the certificate and key to secure device
UINT SecureWrite(UINT device_id, char *cert_name, X *x, char *key_name, K *k, char *pin)
{
SECURE *sec;
bool failed;
// Validate arguments
if (pin == NULL || device_id == 0 || cert_name == NULL || x == NULL || key_name == NULL || k == NULL)
{
return ERR_INTERNAL_ERROR;
}
// Open the device
sec = OpenSec(device_id);
if (sec == NULL)
{
return ERR_SECURE_DEVICE_OPEN_FAILED;
}
// Open the session
if (OpenSecSession(sec, 0) == false)
{
CloseSec(sec);
return ERR_SECURE_DEVICE_OPEN_FAILED;
}
// Login
if (LoginSec(sec, pin) == false)
{
CloseSecSession(sec);
CloseSec(sec);
return ERR_SECURE_PIN_LOGIN_FAILED;
}
// Registration
failed = false;
// Register the certificate
if (WriteSecCert(sec, true, cert_name, x) == false)
{
failed = true;
}
// Register the private key
if (WriteSecKey(sec, true, key_name, k) == false)
{
failed = true;
}
// Log out
LogoutSec(sec);
// Close the session
CloseSecSession(sec);
// Close the device
CloseSec(sec);
if (failed == false)
{
// Success
return ERR_NO_ERROR;
}
else
{
// Failure
return ERR_SECURE_CANT_WRITE;
}
}
// Attempt to sign by the secure device // Attempt to sign by the secure device
UINT SecureSign(SECURE_SIGN *sign, UINT device_id, char *pin) UINT SecureSign(SECURE_SIGN *sign, UINT device_id, char *pin)
{ {
@ -6081,8 +5776,6 @@ bool ServerDownloadSignature(CONNECTION *c, char **error_detail_str)
if (StrCmpi(h->Target, "/") == 0) if (StrCmpi(h->Target, "/") == 0)
{ {
// Root directory // Root directory
SERVER *s = c->Cedar->Server;
*error_detail_str = "HTTP_ROOT"; *error_detail_str = "HTTP_ROOT";
{ {
@ -6460,22 +6153,6 @@ SOCK *ClientConnectGetSocket(CONNECTION *c, bool additional_connect)
} }
// Connect via SOCKS4 // Connect via SOCKS4
SOCK *SocksConnect(CONNECTION *c, char *proxy_host_name, UINT proxy_port,
char *server_host_name, UINT server_port,
char *username, bool additional_connect)
{
return SocksConnectEx(c, proxy_host_name, proxy_port,
server_host_name, server_port, username, additional_connect, NULL, NULL);
}
SOCK *SocksConnectEx(CONNECTION *c, char *proxy_host_name, UINT proxy_port,
char *server_host_name, UINT server_port,
char *username, bool additional_connect,
bool *cancel_flag, void *hWnd)
{
return SocksConnectEx2(c, proxy_host_name, proxy_port,
server_host_name, server_port, username, additional_connect, cancel_flag,
hWnd, 0, NULL);
}
SOCK *SocksConnectEx2(CONNECTION *c, char *proxy_host_name, UINT proxy_port, SOCK *SocksConnectEx2(CONNECTION *c, char *proxy_host_name, UINT proxy_port,
char *server_host_name, UINT server_port, char *server_host_name, UINT server_port,
char *username, bool additional_connect, char *username, bool additional_connect,
@ -6561,7 +6238,6 @@ SOCK *SocksConnectEx2(CONNECTION *c, char *proxy_host_name, UINT proxy_port,
bool SocksRecvResponsePacket(CONNECTION *c, SOCK *s) bool SocksRecvResponsePacket(CONNECTION *c, SOCK *s)
{ {
BUF *b; BUF *b;
UINT size = 8;
UCHAR tmp[8]; UCHAR tmp[8];
UCHAR vn, cd; UCHAR vn, cd;
// Validate arguments // Validate arguments
@ -6965,13 +6641,6 @@ failure:
} }
// Connect through a proxy // Connect through a proxy
SOCK *ProxyConnect(CONNECTION *c, char *proxy_host_name, UINT proxy_port,
char *server_host_name, UINT server_port,
char *username, char *password, bool additional_connect)
{
return ProxyConnectEx(c, proxy_host_name, proxy_port,
server_host_name, server_port, username, password, additional_connect, NULL, NULL);
}
SOCK *ProxyConnectEx(CONNECTION *c, char *proxy_host_name, UINT proxy_port, SOCK *ProxyConnectEx(CONNECTION *c, char *proxy_host_name, UINT proxy_port,
char *server_host_name, UINT server_port, char *server_host_name, UINT server_port,
char *username, char *password, bool additional_connect, char *username, char *password, bool additional_connect,
@ -7182,10 +6851,6 @@ SOCK *ProxyConnectEx2(CONNECTION *c, char *proxy_host_name, UINT proxy_port,
} }
// TCP connection function // TCP connection function
SOCK *TcpConnectEx2(char *hostname, UINT port, UINT timeout, bool *cancel_flag, void *hWnd, bool try_start_ssl)
{
return TcpConnectEx3(hostname, port, timeout, cancel_flag, hWnd, false, NULL, try_start_ssl, NULL);
}
SOCK *TcpConnectEx3(char *hostname, UINT port, UINT timeout, bool *cancel_flag, void *hWnd, bool no_nat_t, UINT *nat_t_error_code, bool try_start_ssl, IP *ret_ip) SOCK *TcpConnectEx3(char *hostname, UINT port, UINT timeout, bool *cancel_flag, void *hWnd, bool no_nat_t, UINT *nat_t_error_code, bool try_start_ssl, IP *ret_ip)
{ {
#ifdef OS_WIN32 #ifdef OS_WIN32
@ -7203,10 +6868,6 @@ SOCK *TcpConnectEx3(char *hostname, UINT port, UINT timeout, bool *cancel_flag,
} }
// Connect with TCP/IP // Connect with TCP/IP
SOCK *TcpIpConnect(char *hostname, UINT port, bool try_start_ssl)
{
return TcpIpConnectEx(hostname, port, NULL, NULL, NULL, false, try_start_ssl, NULL);
}
SOCK *TcpIpConnectEx(char *hostname, UINT port, bool *cancel_flag, void *hWnd, UINT *nat_t_error_code, bool no_nat_t, bool try_start_ssl, IP *ret_ip) SOCK *TcpIpConnectEx(char *hostname, UINT port, bool *cancel_flag, void *hWnd, UINT *nat_t_error_code, bool no_nat_t, bool try_start_ssl, IP *ret_ip)
{ {
SOCK *s = NULL; SOCK *s = NULL;

View File

@ -217,7 +217,6 @@ UINT64 ShortStrToDate64(char *str);
bool ServerAccept(CONNECTION *c); bool ServerAccept(CONNECTION *c);
bool ClientConnect(CONNECTION *c); bool ClientConnect(CONNECTION *c);
SOCK *ClientConnectToServer(CONNECTION *c); SOCK *ClientConnectToServer(CONNECTION *c);
SOCK *TcpIpConnect(char *hostname, UINT port, bool try_start_ssl);
SOCK *TcpIpConnectEx(char *hostname, UINT port, bool *cancel_flag, void *hWnd, UINT *nat_t_error_code, bool no_nat_t, bool try_start_ssl, IP *ret_ip); SOCK *TcpIpConnectEx(char *hostname, UINT port, bool *cancel_flag, void *hWnd, UINT *nat_t_error_code, bool no_nat_t, bool try_start_ssl, IP *ret_ip);
bool ClientUploadSignature(SOCK *s); bool ClientUploadSignature(SOCK *s);
bool ClientDownloadHello(CONNECTION *c, SOCK *s); bool ClientDownloadHello(CONNECTION *c, SOCK *s);
@ -225,7 +224,6 @@ bool ServerDownloadSignature(CONNECTION *c, char **error_detail_str);
bool ServerUploadHello(CONNECTION *c); bool ServerUploadHello(CONNECTION *c);
bool ClientUploadAuth(CONNECTION *c); bool ClientUploadAuth(CONNECTION *c);
SOCK *ClientConnectGetSocket(CONNECTION *c, bool additional_connect); SOCK *ClientConnectGetSocket(CONNECTION *c, bool additional_connect);
SOCK *TcpConnectEx2(char *hostname, UINT port, UINT timeout, bool *cancel_flag, void *hWnd, bool try_start_ssl);
SOCK *TcpConnectEx3(char *hostname, UINT port, UINT timeout, bool *cancel_flag, void *hWnd, bool no_nat_t, UINT *nat_t_error_code, bool try_start_ssl, IP *ret_ip); SOCK *TcpConnectEx3(char *hostname, UINT port, UINT timeout, bool *cancel_flag, void *hWnd, bool no_nat_t, UINT *nat_t_error_code, bool try_start_ssl, IP *ret_ip);
void InitProtocol(); void InitProtocol();
@ -259,9 +257,6 @@ SOCK *ClientAdditionalConnectToServer(CONNECTION *c);
bool ClientUploadAuth2(CONNECTION *c, SOCK *s); bool ClientUploadAuth2(CONNECTION *c, SOCK *s);
bool GetSessionKeyFromPack(PACK *p, UCHAR *session_key, UINT *session_key_32); bool GetSessionKeyFromPack(PACK *p, UCHAR *session_key, UINT *session_key_32);
SOCK *ProxyConnect(CONNECTION *c, char *proxy_host_name, UINT proxy_port,
char *server_host_name, UINT server_port,
char *username, char *password, bool additional_connect);
SOCK *ProxyConnectEx(CONNECTION *c, char *proxy_host_name, UINT proxy_port, SOCK *ProxyConnectEx(CONNECTION *c, char *proxy_host_name, UINT proxy_port,
char *server_host_name, UINT server_port, char *server_host_name, UINT server_port,
char *username, char *password, bool additional_connect, char *username, char *password, bool additional_connect,
@ -270,13 +265,6 @@ SOCK *ProxyConnectEx2(CONNECTION *c, char *proxy_host_name, UINT proxy_port,
char *server_host_name, UINT server_port, char *server_host_name, UINT server_port,
char *username, char *password, bool additional_connect, char *username, char *password, bool additional_connect,
bool *cancel_flag, void *hWnd, UINT timeout); bool *cancel_flag, void *hWnd, UINT timeout);
SOCK *SocksConnect(CONNECTION *c, char *proxy_host_name, UINT proxy_port,
char *server_host_name, UINT server_port,
char *username, bool additional_connect);
SOCK *SocksConnectEx(CONNECTION *c, char *proxy_host_name, UINT proxy_port,
char *server_host_name, UINT server_port,
char *username, bool additional_connect,
bool *cancel_flag, void *hWnd);
SOCK *SocksConnectEx2(CONNECTION *c, char *proxy_host_name, UINT proxy_port, SOCK *SocksConnectEx2(CONNECTION *c, char *proxy_host_name, UINT proxy_port,
char *server_host_name, UINT server_port, char *server_host_name, UINT server_port,
char *username, bool additional_connect, char *username, bool additional_connect,
@ -291,9 +279,6 @@ bool ClientCheckServerCert(CONNECTION *c, bool *expired);
void ClientCheckServerCertThread(THREAD *thread, void *param); void ClientCheckServerCertThread(THREAD *thread, void *param);
bool ClientSecureSign(CONNECTION *c, UCHAR *sign, UCHAR *random, X **x); bool ClientSecureSign(CONNECTION *c, UCHAR *sign, UCHAR *random, X **x);
void ClientSecureSignThread(THREAD *thread, void *param); void ClientSecureSignThread(THREAD *thread, void *param);
UINT SecureWrite(UINT device_id, char *cert_name, X *x, char *key_name, K *k, char *pin);
UINT SecureEnum(UINT device_id, char *pin, TOKEN_LIST **cert_list, TOKEN_LIST **key_list);
UINT SecureDelete(UINT device_id, char *pin, char *cert_name, char *key_name);
TOKEN_LIST *EnumHub(SESSION *s); TOKEN_LIST *EnumHub(SESSION *s);
UINT ChangePasswordAccept(CONNECTION *c, PACK *p); UINT ChangePasswordAccept(CONNECTION *c, PACK *p);
UINT ChangePassword(CEDAR *cedar, CLIENT_OPTION *o, char *hubname, char *username, char *old_pass, char *new_pass); UINT ChangePassword(CEDAR *cedar, CLIENT_OPTION *o, char *hubname, char *username, char *old_pass, char *new_pass);

View File

@ -432,7 +432,6 @@ LIST *NewCancelList();
void ReleaseCancelList(LIST *o); void ReleaseCancelList(LIST *o);
void AddCancelList(LIST *o, CANCEL *c); void AddCancelList(LIST *o, CANCEL *c);
void CancelList(LIST *o); void CancelList(LIST *o);
bool CompareNodeInfo(NODE_INFO *a, NODE_INFO *b);
bool IsPriorityHighestPacketForQoS(void *data, UINT size); bool IsPriorityHighestPacketForQoS(void *data, UINT size);
UINT GetNextDelayedPacketTickDiff(SESSION *s); UINT GetNextDelayedPacketTickDiff(SESSION *s);