test/osd: fix buffer alignment issue in unittest_ecbackend
The create_buf() function in TestECBackend.cc had two issues that
caused test failures when running with ASan enabled:
1. Infinite loop potential: When std::rand() % 5 returned 0, len_to_add
would be 0, causing an infinite loop if the buffer hadn't reached
the target length yet.
2. Memory alignment issue: Using append_zero() doesn't guarantee that
the resulting buffer's memory address is aligned to EC_ALIGN_SIZE
(4096 bytes). The is_aligned() check verifies that all buffers in
the bufferlist have their data pointers properly aligned, not just
that the length is a multiple of the alignment size.
Fix by:
- Changing std::rand() % 5 to std::rand() % 5 + 1 to ensure we always
allocate 1-5 pages worth of data, avoiding the infinite loop
- Replacing append_zero() with buffer::create_page_aligned() followed
by memset() and append(), which ensures each buffer has its data
pointer aligned to page boundaries (4096 bytes)
This ensures the test passes consistently with ASan enabled.