SILC_STR_UI16_NSTRING_ALLOC(&new->message,
&new->message_len),
SILC_STR_END);
- if (ret == -1)
+ if (ret == -1) {
+ SILC_LOG_ERROR(("Incorrect private message payload"));
goto err;
+ }
if ((new->message_len < 1 || new->message_len > buffer->len)) {
SILC_LOG_ERROR(("Incorrect private message payload in packet, "
{
int i;
SilcBuffer buffer;
- uint32 len, pad_len = 0;
+ uint32 len, pad_len = 0, block_len;
unsigned char pad[SILC_PACKET_MAX_PADLEN];
SILC_LOG_DEBUG(("Encoding private message payload"));
if (cipher) {
/* Calculate length of padding. */
- pad_len = SILC_PACKET_PADLEN((len + 2));
+ block_len = silc_cipher_get_block_len(cipher);
+ pad_len = SILC_PACKET_PADLEN(len, block_len);
len += pad_len;
/* Generate padding */