summaryrefslogtreecommitdiff
path: root/pceplib/pcep_msg_messages_encoding.c
diff options
context:
space:
mode:
authorJavier Garcia <javier.garcia@voltanet.io>2021-03-20 22:21:09 +0100
committerJavier Garcia <javier.garcia@voltanet.io>2021-03-20 22:21:09 +0100
commit7ed8c4b1fd2cd46864271e44a9778caa31d367fd (patch)
tree3b11f0c2123b57fee1cc7cf9ef0a21268decf7fe /pceplib/pcep_msg_messages_encoding.c
parenta78a4e754edc486769419c4f7a86a20538052171 (diff)
pceplib: Fixing coverity messages.
Signed-off-by: Javier Garcia <javier.garcia@voltanet.io>
Diffstat (limited to 'pceplib/pcep_msg_messages_encoding.c')
-rw-r--r--pceplib/pcep_msg_messages_encoding.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/pceplib/pcep_msg_messages_encoding.c b/pceplib/pcep_msg_messages_encoding.c
index 23ccef480c..7c8e1b3a1f 100644
--- a/pceplib/pcep_msg_messages_encoding.c
+++ b/pceplib/pcep_msg_messages_encoding.c
@@ -129,7 +129,7 @@ void pcep_encode_message(struct pcep_message *message,
message_length +=
pcep_encode_object(node->data, versioning,
message_buffer + message_length);
- if (message_length > PCEP_MESSAGE_LENGTH) {
+ if (message_length >= PCEP_MESSAGE_LENGTH) {
message->encoded_message = NULL;
message->encoded_message_length = 0;
return;
@@ -295,6 +295,14 @@ struct pcep_message *pcep_decode_message(const uint8_t *msg_buf)
msg_length = pcep_decode_msg_header(msg_buf, &msg_version, &msg_flags,
&msg_type);
+ if (msg_length == 0) {
+ pcep_log(LOG_INFO, "%s: Discarding empty message", __func__);
+ return NULL;
+ }
+ if (msg_length >= PCEP_MESSAGE_LENGTH) {
+ pcep_log(LOG_INFO, "%s: Discarding message too big", __func__);
+ return NULL;
+ }
struct pcep_message *msg =
pceplib_calloc(PCEPLIB_MESSAGES, sizeof(struct pcep_message));