mirror of
https://github.com/SoftEtherVPN/SoftEtherVPN.git
synced 2024-11-23 01:49:53 +03:00
Mayaqua: revamp RecvHttpHeader() so that cleanup functions are not called twice
This commit is contained in:
parent
30f37beed2
commit
ada06e218e
@ -20563,13 +20563,15 @@ HTTP_HEADER *RecvHttpHeader(SOCK *s)
|
|||||||
|
|
||||||
// Split into tokens
|
// Split into tokens
|
||||||
token = ParseToken(str, " ");
|
token = ParseToken(str, " ");
|
||||||
if (token->NumTokens < 3)
|
|
||||||
{
|
|
||||||
goto LABEL_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
Free(str);
|
Free(str);
|
||||||
|
|
||||||
|
if (token->NumTokens < 3)
|
||||||
|
{
|
||||||
|
FreeToken(token);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
// Creating a header object
|
// Creating a header object
|
||||||
header = NewHttpHeader(token->Token[0], token->Token[1], token->Token[2]);
|
header = NewHttpHeader(token->Token[0], token->Token[1], token->Token[2]);
|
||||||
FreeToken(token);
|
FreeToken(token);
|
||||||
@ -20594,21 +20596,15 @@ HTTP_HEADER *RecvHttpHeader(SOCK *s)
|
|||||||
|
|
||||||
if (AddHttpValueStr(header, str) == false)
|
if (AddHttpValueStr(header, str) == false)
|
||||||
{
|
{
|
||||||
goto LABEL_ERROR;
|
Free(str);
|
||||||
|
FreeHttpHeader(header);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Free(str);
|
Free(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
return header;
|
return header;
|
||||||
|
|
||||||
LABEL_ERROR:
|
|
||||||
// Memory release
|
|
||||||
Free(str);
|
|
||||||
FreeToken(token);
|
|
||||||
FreeHttpHeader(header);
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Receive a line
|
// Receive a line
|
||||||
|
Loading…
Reference in New Issue
Block a user