From 1bb00adc37479070c2d9a3c767c95304881a0db8 Mon Sep 17 00:00:00 2001 From: Roman Zeyde Date: Mon, 24 Aug 2015 13:47:27 +0300 Subject: [PATCH] fsm: add compile-time assert for response size validation ttps://gcc.gnu.org/gcc-4.6/changes.html --- firmware/fsm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/firmware/fsm.c b/firmware/fsm.c index 837dc5f..fa9a5d9 100644 --- a/firmware/fsm.c +++ b/firmware/fsm.c @@ -51,7 +51,9 @@ static uint8_t msg_resp[MSG_OUT_SIZE]; -#define RESP_INIT(TYPE) TYPE *resp = (TYPE *)msg_resp; memset(resp, 0, sizeof(TYPE)); +#define RESP_INIT(TYPE) TYPE *resp = (TYPE *)msg_resp; \ + _Static_assert(sizeof(msg_resp) >= sizeof(TYPE), #TYPE " is too large"); \ + memset(resp, 0, sizeof(TYPE)); void fsm_sendSuccess(const char *text) {