From 8c83db818966bfd828e505c563de09fc30e6695e Mon Sep 17 00:00:00 2001 From: marwanelmessiry <63555640+marwanelmessiry@users.noreply.github.com> Date: Wed, 8 Jan 2025 03:34:16 +0200 Subject: [PATCH 1/3] solving out of boundaries vulnerability in fpmlink.cpp --- fpmsyncd/fpmlink.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/fpmsyncd/fpmlink.cpp b/fpmsyncd/fpmlink.cpp index 1ed888d292..d15699a7ef 100644 --- a/fpmsyncd/fpmlink.cpp +++ b/fpmsyncd/fpmlink.cpp @@ -208,7 +208,14 @@ uint64_t FpmLink::readData() size_t start = 0, left; ssize_t read; - read = ::read(m_connection_socket, m_messageBuffer + m_pos, m_bufSize - m_pos); + try + { + read = ::read(m_connection_socket, m_messageBuffer + m_pos, m_bufSize - m_pos); + } + catch(const std::exception& e) + { + std::cerr << e.what() << 'ERROR: exceeding buffer size ...'; + } if (read == 0) throw FpmConnectionClosedException(); if (read < 0) From de59115c14e883fb7c25d9bf2572676f87534f8e Mon Sep 17 00:00:00 2001 From: marwanelmessiry <63555640+marwanelmessiry@users.noreply.github.com> Date: Wed, 15 Jan 2025 03:30:24 +0200 Subject: [PATCH 2/3] Update mclaglink.cpp --- mclagsyncd/mclaglink.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mclagsyncd/mclaglink.cpp b/mclagsyncd/mclaglink.cpp index f48a0e1376..088f2e8b79 100644 --- a/mclagsyncd/mclaglink.cpp +++ b/mclagsyncd/mclaglink.cpp @@ -1877,8 +1877,14 @@ uint64_t MclagLink::readData() size_t start = 0, left = 0; ssize_t read = 0; char * msg = NULL; - + try{ read = ::read(m_connection_socket, m_messageBuffer + m_pos, m_bufSize - m_pos); + } + catch(const std::exception& e) + { + std::cerr << e.what() << 'ERROR: exceeding buffer size ...'; + } + if (read == 0) throw MclagConnectionClosedException(); if (read < 0) From 4095e67f5a308eda81705291d6b848fb38f8d177 Mon Sep 17 00:00:00 2001 From: marwanelmessiry <63555640+marwanelmessiry@users.noreply.github.com> Date: Wed, 15 Jan 2025 03:32:30 +0200 Subject: [PATCH 3/3] Update fpmlink.cpp --- fpmsyncd/fpmlink.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/fpmsyncd/fpmlink.cpp b/fpmsyncd/fpmlink.cpp index d15699a7ef..6f71f1e70f 100644 --- a/fpmsyncd/fpmlink.cpp +++ b/fpmsyncd/fpmlink.cpp @@ -208,11 +208,11 @@ uint64_t FpmLink::readData() size_t start = 0, left; ssize_t read; - try - { - read = ::read(m_connection_socket, m_messageBuffer + m_pos, m_bufSize - m_pos); - } - catch(const std::exception& e) +try + { + read = ::read(m_connection_socket, m_messageBuffer + m_pos, m_bufSize - m_pos); + } +catch(const std::exception& e) { std::cerr << e.what() << 'ERROR: exceeding buffer size ...'; }