Totem/cpg service/... adds headers to message, so even message which
fits limit becomes larger. To prevent this to happen, smaller limit is
checked.

Signed-off-by: Jan Friesse <[email protected]>
---
 lib/cpg.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/lib/cpg.c b/lib/cpg.c
index 4b92f44..1cc021b 100644
--- a/lib/cpg.c
+++ b/lib/cpg.c
@@ -979,6 +979,14 @@ cs_error_t cpg_mcast_joined (
                msg_len += iovec[i].iov_len;
        }
 
+       /*
+        * 512 is engineering aproximation of structure headers added by 
cpg/totem/...
+        * It's impossible to send larger messages
+        */
+       if (msg_len > IPC_REQUEST_SIZE - 512) {
+               return (CS_ERR_TOO_BIG);
+       }
+
        req_lib_cpg_mcast.header.size = sizeof (struct req_lib_cpg_mcast) +
                msg_len;
 
-- 
1.7.1

_______________________________________________
discuss mailing list
[email protected]
http://lists.corosync.org/mailman/listinfo/discuss

Reply via email to