summaryrefslogtreecommitdiff
path: root/pceplib/pcep_msg_messages_encoding.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2021-03-22 10:22:25 -0400
committerGitHub <noreply@github.com>2021-03-22 10:22:25 -0400
commit7bf7917cdec9407db3666147406aec75ae6828ed (patch)
tree6a2ea8099be802614ba80dda7309184d2e1558a7 /pceplib/pcep_msg_messages_encoding.c
parentcb39b2d4aa37d2068ffc842695b312c09b1e0d37 (diff)
parent7ed8c4b1fd2cd46864271e44a9778caa31d367fd (diff)
Merge pull request #8303 from volta-networks/fix_coverity_pceplib
pceplib: Fixing coverity messages.
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));