test-tool: Initialize parameter buffers
This patch avoids that Valgrind reports that an uninitialized buffer is passed to writev(): Syscall param writev(vector[...]) points to uninitialised byte(s) at 0x5557D07: writev (in /lib64/libc-2.19.so) by 0x5269BFD: iscsi_iovector_readv_writev (socket.c:509) by 0x526A7A9: iscsi_write_to_socket (socket.c:727) by 0x526AE47: iscsi_service (socket.c:888) by 0x526B632: event_loop (sync.c:67) by 0x526D925: iscsi_scsi_command_sync (sync.c:1223) by 0x405970: send_scsi_command (iscsi-support.c:276) by 0x40B190: extendedcopy (iscsi-support.c:2673) by 0x40E9FE: test_extendedcopy_param (test_extendedcopy_param.c:63) by 0x503E260: ??? (in /usr/lib64/libcunit.so.1.0.1) by 0x503E56E: ??? (in /usr/lib64/libcunit.so.1.0.1) by 0x503E8A5: CU_run_all_tests (in /usr/lib64/libcunit.so.1.0.1) Address 0xffefff864 is on thread 1's stack in frame #8, created by test_extendedcopy_param (test_extendedcopy_param.c:31) Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
This commit is contained in:
committed by
Ronnie Sahlberg
parent
7b8363827b
commit
cacc144a29
@@ -82,6 +82,7 @@ test_extendedcopy_descr_limits(void)
|
||||
get_desc_len(BLK_TO_BLK_SEG_DESCR);
|
||||
data.data = alloca(alloc_len);
|
||||
xcopybuf = data.data;
|
||||
memset(xcopybuf, 0, alloc_len);
|
||||
|
||||
logging(LOG_VERBOSE,
|
||||
"Test sending more than supported target descriptors");
|
||||
|
||||
@@ -64,6 +64,7 @@ test_extendedcopy_descr_type(void)
|
||||
get_desc_len(BLK_TO_BLK_SEG_DESCR);
|
||||
data.data = alloca(alloc_len);
|
||||
xcopybuf = data.data;
|
||||
memset(xcopybuf, 0, alloc_len);
|
||||
|
||||
logging(LOG_VERBOSE,
|
||||
"Send Fibre Channel N_Port_Name target descriptor");
|
||||
|
||||
@@ -44,6 +44,7 @@ test_extendedcopy_param(void)
|
||||
get_desc_len(BLK_TO_BLK_SEG_DESCR);
|
||||
data.data = alloca(data.size);
|
||||
xcopybuf = data.data;
|
||||
memset(xcopybuf, 0, data.size);
|
||||
|
||||
offset += populate_tgt_desc(xcopybuf+offset, IDENT_DESCR_TGT_DESCR,
|
||||
LU_ID_TYPE_LUN, 0, 0, 0, 0, sd);
|
||||
|
||||
@@ -58,6 +58,7 @@ test_extendedcopy_simple(void)
|
||||
get_desc_len(BLK_TO_BLK_SEG_DESCR);
|
||||
data.data = alloca(data.size);
|
||||
xcopybuf = data.data;
|
||||
memset(xcopybuf, 0, data.size);
|
||||
|
||||
/* Initialize target descriptor list with one target descriptor */
|
||||
offset += populate_tgt_desc(xcopybuf+offset, IDENT_DESCR_TGT_DESCR,
|
||||
|
||||
@@ -44,6 +44,7 @@ test_extendedcopy_validate_seg_descr(void)
|
||||
get_desc_len(BLK_TO_BLK_SEG_DESCR);
|
||||
data.data = alloca(data.size);
|
||||
xcopybuf = data.data;
|
||||
memset(xcopybuf, 0, data.size);
|
||||
|
||||
logging(LOG_VERBOSE, "Send invalid target descriptor index");
|
||||
offset += populate_tgt_desc(xcopybuf+offset, IDENT_DESCR_TGT_DESCR,
|
||||
|
||||
@@ -44,6 +44,7 @@ test_extendedcopy_validate_tgt_descr(void)
|
||||
get_desc_len(BLK_TO_BLK_SEG_DESCR);
|
||||
data.data = alloca(data.size);
|
||||
xcopybuf = data.data;
|
||||
memset(xcopybuf, 0, data.size);
|
||||
|
||||
logging(LOG_VERBOSE, "Unsupported LU_ID TYPE");
|
||||
/* Unsupported LU ID TYPE */
|
||||
|
||||
@@ -57,6 +57,7 @@ test_receive_copy_results_copy_status(void)
|
||||
get_desc_len(BLK_TO_BLK_SEG_DESCR);
|
||||
data.data = alloca(data.size);
|
||||
xcopybuf = data.data;
|
||||
memset(xcopybuf, 0, data.size);
|
||||
|
||||
/* Initialize target descriptor list with one target descriptor */
|
||||
offset += populate_tgt_desc(xcopybuf+offset, IDENT_DESCR_TGT_DESCR,
|
||||
|
||||
@@ -29,7 +29,8 @@ void
|
||||
test_writeatomic16_beyond_eol(void)
|
||||
{
|
||||
int align, i, gran, ret;
|
||||
unsigned char *buf = alloca(256 * 2 * block_size);
|
||||
const size_t bufsz = 256 * 2 * block_size;
|
||||
unsigned char *buf = alloca(bufsz);
|
||||
|
||||
|
||||
CHECK_FOR_DATALOSS;
|
||||
@@ -42,6 +43,7 @@ test_writeatomic16_beyond_eol(void)
|
||||
|
||||
logging(LOG_VERBOSE, LOG_BLANK_LINE);
|
||||
|
||||
memset(buf, 0xa6, bufsz);
|
||||
align = inq_bl->atomic_align ? inq_bl->atomic_align : 1;
|
||||
gran = inq_bl->atomic_gran ? inq_bl->atomic_gran : 1;
|
||||
ret = writeatomic16(sd, 0,
|
||||
@@ -56,7 +58,6 @@ test_writeatomic16_beyond_eol(void)
|
||||
CU_ASSERT_EQUAL(ret, 0);
|
||||
|
||||
logging(LOG_VERBOSE, "Test WRITEATOMIC16 1-256 blocks <granularity> blocks beyond the end");
|
||||
memset(buf, 0xa6, 256 * block_size);
|
||||
for (i = gran; i <= 256; i += gran) {
|
||||
if (maximum_transfer_length && maximum_transfer_length < i) {
|
||||
break;
|
||||
|
||||
@@ -30,7 +30,8 @@ void
|
||||
test_writeatomic16_simple(void)
|
||||
{
|
||||
int i, gran, ret;
|
||||
unsigned char *buf = alloca(256 * block_size);
|
||||
const size_t bufsz = 256 * block_size;
|
||||
unsigned char *buf = alloca(bufsz);
|
||||
|
||||
|
||||
CHECK_FOR_DATALOSS;
|
||||
@@ -43,6 +44,7 @@ test_writeatomic16_simple(void)
|
||||
|
||||
logging(LOG_VERBOSE, LOG_BLANK_LINE);
|
||||
|
||||
memset(buf, 0, bufsz);
|
||||
gran = inq_bl->atomic_gran ? inq_bl->atomic_gran : 1;
|
||||
ret = writeatomic16(sd, 0,
|
||||
block_size * gran,
|
||||
|
||||
@@ -43,6 +43,7 @@ test_writeatomic16_wrprotect(void)
|
||||
logging(LOG_VERBOSE, LOG_BLANK_LINE);
|
||||
|
||||
gran = inq_bl->atomic_gran ? inq_bl->atomic_gran : 1;
|
||||
memset(buf, 0, block_size);
|
||||
ret = writeatomic16(sd, 0,
|
||||
block_size * gran,
|
||||
block_size, 0, 0, 0, 0, buf,
|
||||
|
||||
Reference in New Issue
Block a user