i_stream_get_error(file->pending_read_input));
} else {
ret = I_MIN(size, data_size);
- memcpy(buf, data, ret);
+ if (ret > 0)
+ memcpy(buf, data, ret);
}
i_stream_unref(&file->pending_read_input);
return ret;
return -1;
}
output_dup = p_malloc(result->row_pool, output_size + 1);
- memcpy(output_dup, output, output_size);
+ if (output_size > 0)
+ memcpy(output_dup, output, output_size);
*str_r = output_dup;
*len_r = output_size;
return 0;
mail_index_get_header_ext(view, map->map_ext_id, &data, &data_size);
i_zero(hdr_r);
- memcpy(hdr_r, data, I_MIN(data_size, sizeof(*hdr_r)));
+ if (data_size > 0)
+ memcpy(hdr_r, data, I_MIN(data_size, sizeof(*hdr_r)));
}
uint32_t mdbox_map_get_rebuild_count(struct mdbox_map *map)
mail_index_get_header_ext(view, hdr_ext_id, &data, &data_size);
i_zero(hdr_r);
- memcpy(hdr_r, data, I_MIN(data_size, sizeof(*hdr_r)));
+ if (data_size > 0)
+ memcpy(hdr_r, data, I_MIN(data_size, sizeof(*hdr_r)));
*need_resize_r = data_size < sizeof(*hdr_r);
}
ctx->storage->map->map_ext_id,
&data, &data_size);
i_zero(&ctx->orig_map_hdr);
- memcpy(&ctx->orig_map_hdr, data,
- I_MIN(data_size, sizeof(ctx->orig_map_hdr)));
+ if (data_size > 0) {
+ memcpy(&ctx->orig_map_hdr, data,
+ I_MIN(data_size, sizeof(ctx->orig_map_hdr)));
+ }
ctx->highest_file_id = ctx->orig_map_hdr.highest_file_id;
/* get storage rebuild counter after locking */
ret = -1;
} else {
i_zero(hdr);
- memcpy(hdr, data, I_MIN(data_size, sizeof(*hdr)));
+ if (data_size > 0)
+ memcpy(hdr, data, I_MIN(data_size, sizeof(*hdr)));
if (guid_128_is_empty(hdr->mailbox_guid))
ret = -1;
else {
if (pos >= buf->used)
buffer_write(_buf, pos, data, data_size);
- else {
+ else if (data_size > 0) {
buffer_copy(_buf, pos + data_size, _buf, pos, SIZE_MAX);
memcpy(buf->w_buffer + pos, data, data_size);
}
key_len = meth->digest_size;
}
- memcpy(k_ipad, key, key_len);
+ if (key_len > 0)
+ memcpy(k_ipad, key, key_len);
memset(k_ipad + key_len, 0, meth->block_size - key_len);
memcpy(k_opad, k_ipad, meth->block_size);
}
cstream->prev_stream_left = data_size;
- memcpy(cstream->istream.w_buffer, data, data_size);
- i_stream_skip(prev_input, data_size);
+ if (data_size > 0) {
+ memcpy(cstream->istream.w_buffer, data, data_size);
+ i_stream_skip(prev_input, data_size);
+ }
cstream->istream.skip = 0;
cstream->istream.pos = data_size;
}
struct istream_private *stream = _stream->real_stream;
size_t size2;
+ if (size == 0)
+ return TRUE;
(void)i_stream_try_alloc(stream, size, &size2);
if (size > size2)
return FALSE;
uint_fast32_t saved_lo;
unsigned long used, free;
+ if (size == 0)
+ return;
+
saved_lo = ctx->lo;
if ((ctx->lo = (saved_lo + size) & 0x1fffffff) < saved_lo)
ctx->hi++;
uint_fast32_t saved_lo;
unsigned long used, free;
+ if (size == 0)
+ return;
+
saved_lo = ctx->lo;
if ((ctx->lo = (saved_lo + size) & 0x1fffffff) < saved_lo)
ctx->hi++;
if (!pool_alloconly_try_grow(apool, mem, new_size)) {
/* slow way - allocate + copy */
new_mem = pool_alloconly_malloc(pool, new_size);
- memcpy(new_mem, mem, old_size);
+ if (old_size > 0)
+ memcpy(new_mem, mem, old_size);
mem = new_mem;
}
if (!t_try_realloc(mem, new_size)) {
new_mem = t_malloc_no0(new_size);
- memcpy(new_mem, mem, old_size);
+ if (old_size > 0)
+ memcpy(new_mem, mem, old_size);
mem = new_mem;
}
if (!t_try_realloc(mem, new_size)) {
new_mem = t_malloc_no0(new_size);
- memcpy(new_mem, mem, old_size);
+ if (old_size > 0)
+ memcpy(new_mem, mem, old_size);
mem = new_mem;
}
size_t block_nb;
size_t new_len, rem_len, tmp_len;
+ if (len == 0)
+ return;
+
tmp_len = SHA256_BLOCK_SIZE - ctx->len;
rem_len = len < tmp_len ? len : tmp_len;
size_t block_nb;
size_t new_len, rem_len, tmp_len;
+ if (len == 0)
+ return;
+
tmp_len = SHA384_BLOCK_SIZE - ctx->len;
rem_len = len < tmp_len ? len : tmp_len;
size_t block_nb;
size_t new_len, rem_len, tmp_len;
+ if (len == 0)
+ return;
+
tmp_len = SHA512_BLOCK_SIZE - ctx->len;
rem_len = len < tmp_len ? len : tmp_len;