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:
Bart Van Assche
2015-10-06 16:18:13 -07:00
committed by Ronnie Sahlberg
parent 7b8363827b
commit cacc144a29
10 changed files with 14 additions and 3 deletions

View File

@@ -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");

View File

@@ -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");

View File

@@ -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);

View File

@@ -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,

View File

@@ -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,

View File

@@ -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 */

View File

@@ -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,

View File

@@ -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;

View File

@@ -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,

View File

@@ -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,