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);
|
get_desc_len(BLK_TO_BLK_SEG_DESCR);
|
||||||
data.data = alloca(alloc_len);
|
data.data = alloca(alloc_len);
|
||||||
xcopybuf = data.data;
|
xcopybuf = data.data;
|
||||||
|
memset(xcopybuf, 0, alloc_len);
|
||||||
|
|
||||||
logging(LOG_VERBOSE,
|
logging(LOG_VERBOSE,
|
||||||
"Test sending more than supported target descriptors");
|
"Test sending more than supported target descriptors");
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ test_extendedcopy_descr_type(void)
|
|||||||
get_desc_len(BLK_TO_BLK_SEG_DESCR);
|
get_desc_len(BLK_TO_BLK_SEG_DESCR);
|
||||||
data.data = alloca(alloc_len);
|
data.data = alloca(alloc_len);
|
||||||
xcopybuf = data.data;
|
xcopybuf = data.data;
|
||||||
|
memset(xcopybuf, 0, alloc_len);
|
||||||
|
|
||||||
logging(LOG_VERBOSE,
|
logging(LOG_VERBOSE,
|
||||||
"Send Fibre Channel N_Port_Name target descriptor");
|
"Send Fibre Channel N_Port_Name target descriptor");
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ test_extendedcopy_param(void)
|
|||||||
get_desc_len(BLK_TO_BLK_SEG_DESCR);
|
get_desc_len(BLK_TO_BLK_SEG_DESCR);
|
||||||
data.data = alloca(data.size);
|
data.data = alloca(data.size);
|
||||||
xcopybuf = data.data;
|
xcopybuf = data.data;
|
||||||
|
memset(xcopybuf, 0, data.size);
|
||||||
|
|
||||||
offset += populate_tgt_desc(xcopybuf+offset, IDENT_DESCR_TGT_DESCR,
|
offset += populate_tgt_desc(xcopybuf+offset, IDENT_DESCR_TGT_DESCR,
|
||||||
LU_ID_TYPE_LUN, 0, 0, 0, 0, sd);
|
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);
|
get_desc_len(BLK_TO_BLK_SEG_DESCR);
|
||||||
data.data = alloca(data.size);
|
data.data = alloca(data.size);
|
||||||
xcopybuf = data.data;
|
xcopybuf = data.data;
|
||||||
|
memset(xcopybuf, 0, data.size);
|
||||||
|
|
||||||
/* Initialize target descriptor list with one target descriptor */
|
/* Initialize target descriptor list with one target descriptor */
|
||||||
offset += populate_tgt_desc(xcopybuf+offset, IDENT_DESCR_TGT_DESCR,
|
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);
|
get_desc_len(BLK_TO_BLK_SEG_DESCR);
|
||||||
data.data = alloca(data.size);
|
data.data = alloca(data.size);
|
||||||
xcopybuf = data.data;
|
xcopybuf = data.data;
|
||||||
|
memset(xcopybuf, 0, data.size);
|
||||||
|
|
||||||
logging(LOG_VERBOSE, "Send invalid target descriptor index");
|
logging(LOG_VERBOSE, "Send invalid target descriptor index");
|
||||||
offset += populate_tgt_desc(xcopybuf+offset, IDENT_DESCR_TGT_DESCR,
|
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);
|
get_desc_len(BLK_TO_BLK_SEG_DESCR);
|
||||||
data.data = alloca(data.size);
|
data.data = alloca(data.size);
|
||||||
xcopybuf = data.data;
|
xcopybuf = data.data;
|
||||||
|
memset(xcopybuf, 0, data.size);
|
||||||
|
|
||||||
logging(LOG_VERBOSE, "Unsupported LU_ID TYPE");
|
logging(LOG_VERBOSE, "Unsupported LU_ID TYPE");
|
||||||
/* 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);
|
get_desc_len(BLK_TO_BLK_SEG_DESCR);
|
||||||
data.data = alloca(data.size);
|
data.data = alloca(data.size);
|
||||||
xcopybuf = data.data;
|
xcopybuf = data.data;
|
||||||
|
memset(xcopybuf, 0, data.size);
|
||||||
|
|
||||||
/* Initialize target descriptor list with one target descriptor */
|
/* Initialize target descriptor list with one target descriptor */
|
||||||
offset += populate_tgt_desc(xcopybuf+offset, IDENT_DESCR_TGT_DESCR,
|
offset += populate_tgt_desc(xcopybuf+offset, IDENT_DESCR_TGT_DESCR,
|
||||||
|
|||||||
@@ -29,7 +29,8 @@ void
|
|||||||
test_writeatomic16_beyond_eol(void)
|
test_writeatomic16_beyond_eol(void)
|
||||||
{
|
{
|
||||||
int align, i, gran, ret;
|
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;
|
CHECK_FOR_DATALOSS;
|
||||||
@@ -42,6 +43,7 @@ test_writeatomic16_beyond_eol(void)
|
|||||||
|
|
||||||
logging(LOG_VERBOSE, LOG_BLANK_LINE);
|
logging(LOG_VERBOSE, LOG_BLANK_LINE);
|
||||||
|
|
||||||
|
memset(buf, 0xa6, bufsz);
|
||||||
align = inq_bl->atomic_align ? inq_bl->atomic_align : 1;
|
align = inq_bl->atomic_align ? inq_bl->atomic_align : 1;
|
||||||
gran = inq_bl->atomic_gran ? inq_bl->atomic_gran : 1;
|
gran = inq_bl->atomic_gran ? inq_bl->atomic_gran : 1;
|
||||||
ret = writeatomic16(sd, 0,
|
ret = writeatomic16(sd, 0,
|
||||||
@@ -56,7 +58,6 @@ test_writeatomic16_beyond_eol(void)
|
|||||||
CU_ASSERT_EQUAL(ret, 0);
|
CU_ASSERT_EQUAL(ret, 0);
|
||||||
|
|
||||||
logging(LOG_VERBOSE, "Test WRITEATOMIC16 1-256 blocks <granularity> blocks beyond the end");
|
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) {
|
for (i = gran; i <= 256; i += gran) {
|
||||||
if (maximum_transfer_length && maximum_transfer_length < i) {
|
if (maximum_transfer_length && maximum_transfer_length < i) {
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -30,7 +30,8 @@ void
|
|||||||
test_writeatomic16_simple(void)
|
test_writeatomic16_simple(void)
|
||||||
{
|
{
|
||||||
int i, gran, ret;
|
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;
|
CHECK_FOR_DATALOSS;
|
||||||
@@ -43,6 +44,7 @@ test_writeatomic16_simple(void)
|
|||||||
|
|
||||||
logging(LOG_VERBOSE, LOG_BLANK_LINE);
|
logging(LOG_VERBOSE, LOG_BLANK_LINE);
|
||||||
|
|
||||||
|
memset(buf, 0, bufsz);
|
||||||
gran = inq_bl->atomic_gran ? inq_bl->atomic_gran : 1;
|
gran = inq_bl->atomic_gran ? inq_bl->atomic_gran : 1;
|
||||||
ret = writeatomic16(sd, 0,
|
ret = writeatomic16(sd, 0,
|
||||||
block_size * gran,
|
block_size * gran,
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ test_writeatomic16_wrprotect(void)
|
|||||||
logging(LOG_VERBOSE, LOG_BLANK_LINE);
|
logging(LOG_VERBOSE, LOG_BLANK_LINE);
|
||||||
|
|
||||||
gran = inq_bl->atomic_gran ? inq_bl->atomic_gran : 1;
|
gran = inq_bl->atomic_gran ? inq_bl->atomic_gran : 1;
|
||||||
|
memset(buf, 0, block_size);
|
||||||
ret = writeatomic16(sd, 0,
|
ret = writeatomic16(sd, 0,
|
||||||
block_size * gran,
|
block_size * gran,
|
||||||
block_size, 0, 0, 0, 0, buf,
|
block_size, 0, 0, 0, 0, buf,
|
||||||
|
|||||||
Reference in New Issue
Block a user