Skip to content

Commit 313a297

Browse files
Merge pull request #184 from SWISensorHub/pr_m_buffers_memset
Fix memset past end of buffer in erpc_setup_mbf_static.cpp
2 parents 31cb98c + 9521b4a commit 313a297

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

erpc_c/setup/erpc_setup_mbf_static.cpp

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222

2323
using namespace erpc;
2424

25-
#define ERPC_BUFFER_SIZE_UINT8 ((ERPC_DEFAULT_BUFFER_SIZE + sizeof(uint64_t) - 1))
26-
#define ERPC_BUFFER_SIZE_UINT64 (ERPC_BUFFER_SIZE_UINT8 / sizeof(uint64_t))
25+
#define ERPC_BUFFER_SIZE_UINT64 \
26+
((ERPC_DEFAULT_BUFFER_SIZE + sizeof(uint64_t) - 1) / sizeof(uint64_t))
2727

2828
////////////////////////////////////////////////////////////////////////////////
2929
// Classes
@@ -43,8 +43,8 @@ class StaticMessageBufferFactory : public MessageBufferFactory
4343
: m_semaphore(1)
4444
#endif
4545
{
46-
(void)memset(m_freeBufferBitmap, 0xff, ERPC_DEFAULT_BUFFERS_COUNT >> 3);
47-
(void)memset(m_buffers, 0, ERPC_DEFAULT_BUFFERS_COUNT * ERPC_BUFFER_SIZE_UINT8);
46+
(void)memset(m_freeBufferBitmap, 0xff, sizeof(m_freeBufferBitmap));
47+
(void)memset(m_buffers, 0, sizeof(m_buffers));
4848
}
4949

5050
/*!
@@ -112,8 +112,12 @@ class StaticMessageBufferFactory : public MessageBufferFactory
112112
}
113113

114114
protected:
115-
uint8_t m_freeBufferBitmap[(ERPC_DEFAULT_BUFFERS_COUNT >> 3U) + 1U]; /*!< Bitmat of used/not used buffers. */
116-
uint64_t m_buffers[ERPC_DEFAULT_BUFFERS_COUNT][ERPC_BUFFER_SIZE_UINT64]; /*!< Static buffers. */
115+
//! Bitmap representing which buffers are in use. A bit value of 1 means free and 0 means in
116+
//! use.
117+
uint8_t m_freeBufferBitmap[(ERPC_DEFAULT_BUFFERS_COUNT >> 3U) +
118+
(ERPC_DEFAULT_BUFFERS_COUNT % 8 ? 1U : 0U)];
119+
//! Static buffers
120+
uint64_t m_buffers[ERPC_DEFAULT_BUFFERS_COUNT][ERPC_BUFFER_SIZE_UINT64];
117121
#if !ERPC_THREADS_IS(NONE)
118122
Semaphore m_semaphore; /*!< Semaphore.*/
119123
#endif

0 commit comments

Comments
 (0)