diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2021-03-22 10:22:25 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-03-22 10:22:25 -0400 |
| commit | 7bf7917cdec9407db3666147406aec75ae6828ed (patch) | |
| tree | 6a2ea8099be802614ba80dda7309184d2e1558a7 /pceplib/pcep_msg_messages_encoding.c | |
| parent | cb39b2d4aa37d2068ffc842695b312c09b1e0d37 (diff) | |
| parent | 7ed8c4b1fd2cd46864271e44a9778caa31d367fd (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.c | 10 |
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)); |
