static size_t finish_check (StunAgent *agent, StunMessage *msg) { uint8_t buf[STUN_MAX_MESSAGE_SIZE + 8]; size_t len; uint16_t plen; StunMessage msg2 = {0}; msg2.agent = msg->agent; msg2.buffer = buf; msg2.buffer_len = sizeof(buf); memcpy (msg2.buffer, msg->buffer, sizeof(buf) > msg->buffer_len ? msg->buffer_len : sizeof(buf)); len = stun_agent_finish_message (agent, msg, NULL, 0); if (len <= 0) fatal ("Cannot finish message"); dynamic_check (agent, msg, len); if (stun_message_find (&msg2, STUN_ATTRIBUTE_MESSAGE_INTEGRITY, &plen) != NULL) fatal ("Missing HMAC test failed"); stun_message_append_string (&msg2, STUN_ATTRIBUTE_USERNAME, (char *) usr); len = stun_agent_finish_message (agent, &msg2, pwd, strlen ((char *) pwd)); if (len <= 0) fatal ("Cannot finish message with short-term creds"); dynamic_check (agent, &msg2, len); return len; }
void f1(int i) { dynamic_check(i < 30); }