s4:torture:libnet: fix 'Syscall param writev(vector[...])' valgrind error
authorNoel Power <noel.power@suse.com>
Wed, 20 Apr 2016 10:57:46 +0000 (11:57 +0100)
committerAndreas Schneider <asn@cryptomilk.org>
Mon, 25 Apr 2016 08:35:16 +0000 (10:35 +0200)
smbtorture test  net.api.delshare.api.delshare generates the following
valgrind trace

==29209== Syscall param writev(vector[...]) points to uninitialised byte(s)
==29209==    at 0xFBA2C87: writev (in /lib64/libc-2.19.so)
==29209==    by 0x106CB033: writev_handler (async_sock.c:340)
==29209==    by 0xF67812A: ??? (in /usr/lib64/libtevent.so.0.9.26)
==29209==    by 0xF6765F6: ??? (in /usr/lib64/libtevent.so.0.9.26)
==29209==    by 0xF6727FC: _tevent_loop_once (in /usr/lib64/libtevent.so.0.9.26)
==29209==    by 0xF673ACE: tevent_req_poll (in /usr/lib64/libtevent.so.0.9.26)
==29209==    by 0x5D19325: tevent_req_poll_ntstatus (tevent_ntstatus.c:109)
==29209==    by 0x88B2E0D: dcerpc_binding_handle_call (binding_handle.c:556)
==29209==    by 0xBC6B4A1: dcerpc_srvsvc_NetShareAdd_r (ndr_srvsvc_c.c:3327)
==29209==    by 0x5990D8: test_addshare (libnet_share.c:194)
==29209==    by 0x5992D5: torture_delshare (libnet_share.c:228)
==29209==    by 0x9553F62: wrap_simple_test (torture.c:632)
==29209==    by 0x955368F: internal_torture_run_test (torture.c:442)
==29209==    by 0x9553A6B: torture_run_test_restricted (torture.c:542)
==29209==    by 0x26013F: run_matching (smbtorture.c:110)
==29209==    by 0x260001: run_matching (smbtorture.c:95)
==29209==    by 0x260260: torture_run_named_tests (smbtorture.c:143)
==29209==    by 0x261EDF: main (smbtorture.c:665)
==29209==  Address 0x1887fd16 is 598 bytes inside a block of size 1,325 alloc'd
==29209==    at 0x4C29110: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==29209==    by 0xF464A73: _talloc_pooled_object (in /usr/lib64/libtalloc.so.2.1.5)
==29209==    by 0xF67366D: _tevent_req_create (in /usr/lib64/libtevent.so.0.9.26)
==29209==    by 0xB0D49FF: smb1cli_req_create (smbXcli_base.c:1322)
==29209==    by 0xB0E1E6D: smb1cli_trans_send (smb1cli_trans.c:512)
==29209==    by 0xB0ED47D: tstream_smbXcli_np_readv_trans_start (tstream_smbXcli_np.c:901)
==29209==    by 0xB0EC847: tstream_smbXcli_np_writev_write_next (tstream_smbXcli_np.c:578)
==29209==    by 0xB0EC4D7: tstream_smbXcli_np_writev_send (tstream_smbXcli_np.c:505)
==29209==    by 0xC259DFA: tstream_writev_send (tsocket.c:695)
==29209==    by 0xC25AD64: tstream_writev_queue_trigger (tsocket_helpers.c:513)
==29209==    by 0xF673023: tevent_common_loop_immediate (in /usr/lib64/libtevent.so.0.9.26)
==29209==    by 0xF677EED: ??? (in /usr/lib64/libtevent.so.0.9.26)
==29209==    by 0xF6765F6: ??? (in /usr/lib64/libtevent.so.0.9.26)
==29209==    by 0xF6727FC: _tevent_loop_once (in /usr/lib64/libtevent.so.0.9.26)
==29209==    by 0xF673ACE: tevent_req_poll (in /usr/lib64/libtevent.so.0.9.26)
==29209==    by 0x5D19325: tevent_req_poll_ntstatus (tevent_ntstatus.c:109)
==29209==    by 0x88B2E0D: dcerpc_binding_handle_call (binding_handle.c:556)
==29209==    by 0xBC6B4A1: dcerpc_srvsvc_NetShareAdd_r (ndr_srvsvc_c.c:3327)
==29209==    by 0x5990D8: test_addshare (libnet_share.c:194)
==29209==    by 0x5992D5: torture_delshare (libnet_share.c:228)
==29209==    by 0x9553F62: wrap_simple_test (torture.c:632)
==29209==    by 0x955368F: internal_torture_run_test (torture.c:442)
==29209==    by 0x9553A6B: torture_run_test_restricted (torture.c:542)
==29209==    by 0x26013F: run_matching (smbtorture.c:110)
==29209==    by 0x260001: run_matching (smbtorture.c:95)
==29209==    by 0x260260: torture_run_named_tests (smbtorture.c:143)
==29209==    by 0x261EDF: main (smbtorture.c:665)

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
source4/torture/libnet/libnet_share.c

index b9e969f366ca62a59465c398ab9740b0bc8dae35..3c50883318eddffe277059fa1f4ef7aee3df5c3a 100644 (file)
@@ -176,6 +176,10 @@ static bool test_addshare(struct torture_context *tctx,
        union srvsvc_NetShareInfo info;
        struct srvsvc_NetShareInfo2 i;
 
+       ZERO_STRUCT(i);
+       ZERO_STRUCT(info);
+       ZERO_STRUCT(add);
+
        i.name         = share;
        i.type         = STYPE_DISKTREE;
        i.path         = "C:\\WINDOWS\\TEMP";