From d1855c8182d5cf1cd290336767a7c8e7537c13a2 Mon Sep 17 00:00:00 2001 From: Gordon Ross Date: Sat, 18 Aug 2018 16:12:44 -0400 Subject: [PATCH] 9769 SMB domain logon fails with I18N user name 9774 libmlrpc changes in 1575 missed some things Reviewed by: Toomas Soome Reviewed by: Andy Fiddaman Approved by: Robert Mustacchi --- usr/src/cmd/smbsrv/dtrace/smbd-all.d | 10 +++++----- usr/src/cmd/smbsrv/dtrace/smbd-authsvc.d | 6 +++--- usr/src/cmd/smbsrv/dtrace/smbd-doorsvc.d | 6 +++--- usr/src/cmd/smbsrv/dtrace/smbd-pipesvc.d | 10 +++++----- usr/src/lib/libmlrpc/common/ndr_process.c | 5 +++-- usr/src/tools/quick/make-smbsrv | 2 ++ 6 files changed, 21 insertions(+), 18 deletions(-) diff --git a/usr/src/cmd/smbsrv/dtrace/smbd-all.d b/usr/src/cmd/smbsrv/dtrace/smbd-all.d index caf2426c6b..d694f63c20 100644 --- a/usr/src/cmd/smbsrv/dtrace/smbd-all.d +++ b/usr/src/cmd/smbsrv/dtrace/smbd-all.d @@ -11,7 +11,7 @@ */ /* - * Copyright 2014 Nexenta Systems, Inc. All rights reserved. + * Copyright 2018 Nexenta Systems, Inc. All rights reserved. */ /* @@ -29,7 +29,7 @@ self int mask; */ pid$target:*smbd::entry, pid$target:libmlsvc.so.1::entry, -pid$target:libmlrpc.so.1::entry, +pid$target:libmlrpc.so.2::entry, pid$target:libsmbns.so.1::entry, pid$target:libsmb.so.1::entry, pid$target:libads.so.1::entry @@ -42,7 +42,7 @@ pid$target:libads.so.1::entry */ pid$target:*smbd::entry, pid$target:libmlsvc.so.1::entry, -pid$target:libmlrpc.so.1::entry, +pid$target:libmlrpc.so.2::entry, pid$target:libsmbns.so.1::entry, pid$target:libsmb.so.1::entry, pid$target:libads.so.1::entry @@ -116,7 +116,7 @@ pid$target::smb_wcequiv_strlen:return pid$target:*smbd::return, pid$target:libmlsvc.so.1::return, -pid$target:libmlrpc.so.1::return, +pid$target:libmlrpc.so.2::return, pid$target:libsmbns.so.1::return, pid$target:libsmb.so.1::return, pid$target:libads.so.1::return @@ -127,7 +127,7 @@ pid$target:libads.so.1::return pid$target:*smbd::return, pid$target:libmlsvc.so.1::return, -pid$target:libmlrpc.so.1::return, +pid$target:libmlrpc.so.2::return, pid$target:libsmbns.so.1::return, pid$target:libsmb.so.1::return, pid$target:libads.so.1::return diff --git a/usr/src/cmd/smbsrv/dtrace/smbd-authsvc.d b/usr/src/cmd/smbsrv/dtrace/smbd-authsvc.d index 0c9cb6a0ed..d0f057da11 100644 --- a/usr/src/cmd/smbsrv/dtrace/smbd-authsvc.d +++ b/usr/src/cmd/smbsrv/dtrace/smbd-authsvc.d @@ -11,7 +11,7 @@ */ /* - * Copyright 2014 Nexenta Systems, Inc. All rights reserved. + * Copyright 2018 Nexenta Systems, Inc. All rights reserved. */ /* @@ -40,7 +40,7 @@ pid$target:*smbd:smbd_authsvc_work:entry */ pid$target:*smbd::entry, pid$target:libmlsvc.so.1::entry, -pid$target:libmlrpc.so.1::entry, +pid$target:libmlrpc.so.2::entry, pid$target:libsmbns.so.1::entry, pid$target:libsmb.so.1::entry, pid$target:libsmbfs.so.1::entry @@ -89,7 +89,7 @@ pid$target::smb_wcequiv_strlen:return pid$target:*smbd::return, pid$target:libmlsvc.so.1::return, -pid$target:libmlrpc.so.1::return, +pid$target:libmlrpc.so.2::return, pid$target:libsmbns.so.1::return, pid$target:libsmb.so.1::return, pid$target:libsmbfs.so.1::return diff --git a/usr/src/cmd/smbsrv/dtrace/smbd-doorsvc.d b/usr/src/cmd/smbsrv/dtrace/smbd-doorsvc.d index 51ffa68ad7..48253bdce2 100644 --- a/usr/src/cmd/smbsrv/dtrace/smbd-doorsvc.d +++ b/usr/src/cmd/smbsrv/dtrace/smbd-doorsvc.d @@ -11,7 +11,7 @@ */ /* - * Copyright 2014 Nexenta Systems, Inc. All rights reserved. + * Copyright 2018 Nexenta Systems, Inc. All rights reserved. */ /* @@ -37,7 +37,7 @@ pid$target:*smbd:smbd_door_dispatch_op:entry */ pid$target:*smbd::entry, pid$target:libmlsvc.so.1::entry, -pid$target:libmlrpc.so.1::entry, +pid$target:libmlrpc.so.2::entry, pid$target:libsmbns.so.1::entry, pid$target:libsmb.so.1::entry, pid$target:libsmbfs.so.1::entry @@ -80,7 +80,7 @@ pid$target::smb_wcequiv_strlen:return pid$target:*smbd::return, pid$target:libmlsvc.so.1::return, -pid$target:libmlrpc.so.1::return, +pid$target:libmlrpc.so.2::return, pid$target:libsmbns.so.1::return, pid$target:libsmb.so.1::return, pid$target:libsmbfs.so.1::return diff --git a/usr/src/cmd/smbsrv/dtrace/smbd-pipesvc.d b/usr/src/cmd/smbsrv/dtrace/smbd-pipesvc.d index 1fe6ca8223..a0a7e688f2 100644 --- a/usr/src/cmd/smbsrv/dtrace/smbd-pipesvc.d +++ b/usr/src/cmd/smbsrv/dtrace/smbd-pipesvc.d @@ -11,7 +11,7 @@ */ /* - * Copyright 2014 Nexenta Systems, Inc. All rights reserved. + * Copyright 2018 Nexenta Systems, Inc. All rights reserved. */ /* @@ -25,7 +25,7 @@ self int trace; self int mask; /* - * The smbd_authsvc_work() function is a good place to start tracing + * The pipesvc_worker() function is a good place to start tracing * to watch RPC service actions. This worker handles all activity * for a given named pipe instance, including the payload from all * SMB read/write requests on this endpoint. @@ -40,7 +40,7 @@ pid$target:*smbd:pipesvc_worker:entry */ pid$target:*smbd::entry, pid$target:libmlsvc.so.1::entry, -pid$target:libmlrpc.so.1::entry, +pid$target:libmlrpc.so.2::entry, pid$target:libsmbns.so.1::entry, pid$target:libsmb.so.1::entry /self->trace > 0 && self->mask == 0/ @@ -92,7 +92,7 @@ pid$target::smb_wcequiv_strlen:return pid$target:*smbd::return, pid$target:libmlsvc.so.1::return, -pid$target:libmlrpc.so.1::return, +pid$target:libmlrpc.so.2::return, pid$target:libsmbns.so.1::return, pid$target:libsmb.so.1::return /self->trace > 0 && self->mask == 0/ @@ -104,7 +104,7 @@ pid$target:libsmb.so.1::return * This function in libmlrpc prints out lots of internal state. * Comment it out if you don't want that noise. */ -pid$target:libmlrpc.so.1:ndo_trace:entry +pid$target:libmlrpc.so.2:ndo_trace:entry /self->trace > 0 && self->mask == 0/ { printf("ndo_trace: %s", copyinstr(arg0)); diff --git a/usr/src/lib/libmlrpc/common/ndr_process.c b/usr/src/lib/libmlrpc/common/ndr_process.c index 3188500a8b..19619a2448 100644 --- a/usr/src/lib/libmlrpc/common/ndr_process.c +++ b/usr/src/lib/libmlrpc/common/ndr_process.c @@ -22,7 +22,7 @@ * Copyright 2010 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. * Copyright 2012 Milan Jurik. All rights reserved. - * Copyright 2013 Nexenta Systems, Inc. All rights reserved. + * Copyright 2018 Nexenta Systems, Inc. All rights reserved. */ /* @@ -1984,7 +1984,8 @@ ndr_s_wchar(ndr_ref_t *encl_ref) */ if (nds->m_op == NDR_M_OP_UNMARSHALL) { wcs[wlen] = 0; - slen = ndr__wcstombs(valp, wcs, wlen); + slen = encl_ref->size_is * NDR_MB_CHAR_MAX; + slen = ndr__wcstombs(valp, wcs, slen); if (slen == (size_t)-1) return (0); valp[slen] = '\0'; diff --git a/usr/src/tools/quick/make-smbsrv b/usr/src/tools/quick/make-smbsrv index 18c1baddcf..1cc55a999b 100755 --- a/usr/src/tools/quick/make-smbsrv +++ b/usr/src/tools/quick/make-smbsrv @@ -262,6 +262,8 @@ do_tags() { find head -name '*.h' -print |sort find lib/smbsrv -name '*.[ch]' -print |sort find lib/libsmbfs -name '*.[ch]' -print |sort + find lib/libmlrpc -name '*.ndl' -print |sort + find lib/libmlrpc -name '*.[ch]' -print |sort find lib/libads -name '*.[ch]' -print |sort find lib/libgss -name '*.[ch]' -print |sort find cmd/smbsrv -name '*.[ch]' -print |sort -- 2.11.4.GIT