s4-wbclient: Fix wbc_sids_to_xids to correctly indicate the length of the SID list
authorAndrew Bartlett <abartlet@samba.org>
Wed, 9 Apr 2014 00:43:54 +0000 (12:43 +1200)
committerVolker Lendecke <vl@samba.org>
Wed, 9 Apr 2014 16:26:40 +0000 (18:26 +0200)
This uses the fact that we know the end of the string in p to avoid
needing a strlen() call.  Otherwise the winbindd validation that the
extra_data is terminated may fail, if the un-initiliased memory is not
zero.

Andrew Bartlett

Change-Id: I9b28068e4fbd3754c8d14724af93638d657810dd
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Wed Apr  9 18:26:40 CEST 2014 on sn-devel-104

source4/libcli/wbclient/wbclient.c

index b5183be121b409d228b25e9aff535e3d6d4c578e..61566233ec5d8319097e7c676e1c3a59408d79be 100644 (file)
@@ -146,7 +146,7 @@ NTSTATUS wbc_sids_to_xids(struct tevent_context *ev, struct id_map *ids,
        req.cmd = WINBINDD_SIDS_TO_XIDS;
        req.pid = getpid();
        req.extra_data.data = sids;
-       req.extra_len = sidslen;
+       req.extra_len = (p - sids);
 
        ret = wb_simple_trans(ev, fd, &req, mem_ctx, &resp, &err);
        if (ret == -1) {