checking for invalid base64 in read_socket_raw
All checks were successful
Codacy Scan / Codacy Security Scan (push) Successful in 29s
Build WHY2-chat / test-why2 (./out/why2-chat-client, ./configure.sh, ubuntu-latest, ./out/why2-chat-server) (push) Successful in 3m24s
Test Project / test-project (./configure.sh, gdb -ex "run" -ex "quit" --batch, ubuntu-latest, ./test) (push) Successful in 3m19s
Test WHY2-core / test-why2 (why2, ./configure.sh, gdb -ex "run" -ex "quit" --batch, ubuntu-latest, ./out/why2-core-test, valgrind --leak-check=full --show-leak-kinds=reachable --track-origins=yes -s) (push) Successful in 3m56s
Test WHY2-logger / test-why2 (why2-logger, ./configure.sh, gdb -ex "run" -ex "quit" --batch, ubuntu-latest, ./out/why2-logger-test, valgrind --leak-check=full --show-leak-kinds=reachable --track-origins=yes -s) (push) Successful in 4m11s
All checks were successful
Codacy Scan / Codacy Security Scan (push) Successful in 29s
Build WHY2-chat / test-why2 (./out/why2-chat-client, ./configure.sh, ubuntu-latest, ./out/why2-chat-server) (push) Successful in 3m24s
Test Project / test-project (./configure.sh, gdb -ex "run" -ex "quit" --batch, ubuntu-latest, ./test) (push) Successful in 3m19s
Test WHY2-core / test-why2 (why2, ./configure.sh, gdb -ex "run" -ex "quit" --batch, ubuntu-latest, ./out/why2-core-test, valgrind --leak-check=full --show-leak-kinds=reachable --track-origins=yes -s) (push) Successful in 3m56s
Test WHY2-logger / test-why2 (why2-logger, ./configure.sh, gdb -ex "run" -ex "quit" --batch, ubuntu-latest, ./out/why2-logger-test, valgrind --leak-check=full --show-leak-kinds=reachable --track-origins=yes -s) (push) Successful in 4m11s
This commit is contained in:
parent
429e0cfeaa
commit
4e04b89221
@ -133,6 +133,10 @@ char *why2_chat_base64_decode(char *encoded_message, size_t *length)
|
||||
BIO *bio;
|
||||
BIO *b64;
|
||||
char *separator_ptr = strrchr(encoded_message, WHY2_CHAT_BASE64_LENGTH_DELIMITER); //GET THE DELIMITER POINTER
|
||||
|
||||
//INVALID BASE64
|
||||
if (separator_ptr == NULL) return NULL;
|
||||
|
||||
size_t length_local = strtoull(separator_ptr + 1, NULL, 10);
|
||||
char* decoded_message = why2_malloc(length_local + 1);
|
||||
int decoded_length;
|
||||
|
@ -168,6 +168,8 @@ why2_bool is_ascii(char c)
|
||||
|
||||
void remove_non_ascii(char **text)
|
||||
{
|
||||
if (*text == NULL) return;
|
||||
|
||||
//REMOVE NON ASCII CHARS
|
||||
int j = 0;
|
||||
for (int i = 0; (*text)[i] != '\0'; i++)
|
||||
@ -217,6 +219,14 @@ void encrypt_decrypt_message(char **message, char *key, enum ENCRYPTION_DECRYPTI
|
||||
size_t length = strlen(*message);
|
||||
char *message_decoded = base64_before_cb(*message, &length);
|
||||
|
||||
//INVALID MESSAGE RECEIVED
|
||||
if (message_decoded == NULL)
|
||||
{
|
||||
why2_deallocate(*message);
|
||||
*message = NULL;
|
||||
return;
|
||||
}
|
||||
|
||||
//SET FLAGS
|
||||
if (why2_get_key_length() < strlen(key)) why2_set_key_length(strlen(key));
|
||||
why2_set_flags((why2_input_flags) { 1, 1, 0, WHY2_v4, WHY2_OUTPUT_TEXT, 0 }); //TODO: Add padding
|
||||
@ -332,8 +342,8 @@ char *read_socket_raw(int socket, char *key)
|
||||
//REMOVE NON-ASCII
|
||||
remove_non_ascii(&output);
|
||||
|
||||
//VALIDATE JSON FORMAT
|
||||
struct json_object *json = json_tokener_parse(output);
|
||||
//VALIDATE JSON FORMAT (AUTOMATICALLY FAIL IF output IS NULL)
|
||||
struct json_object *json = output == NULL ? NULL : json_tokener_parse(output);
|
||||
if (json == NULL)
|
||||
{
|
||||
//RESET output
|
||||
|
Loading…
x
Reference in New Issue
Block a user