Print this page
NEX-16929 Incorrect parameters passed to DC lead to STATUS_INVALID_INFO_CLASS
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
1575 untangle libmlrpc from SMB server
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Toomas Soome <tsoome@me.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
NEX-1810 extended security Kerberos (inbound)
re #12435 rb3958 r10 is added 2 times to panic info
re #12393 rb3935 Kerberos and smbd disagree about who is our AD server


   5  * Common Development and Distribution License (the "License").
   6  * You may not use this file except in compliance with the License.
   7  *
   8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 /*
  22  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
  23  * Use is subject to license terms.
  24  *
  25  * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
  26  */
  27 
  28 #ifndef _MLSVC_NETR_NDL_
  29 #define _MLSVC_NETR_NDL_
  30 
  31 /*
  32  ***********************************************************************
  33  *
  34  * NetLogon RPC (NETR) interface definition.
  35  *
  36  ***********************************************************************
  37  */
  38 
  39 #include "ndrtypes.ndl"
  40 
  41 
  42 #define NETR_OPNUM_UasLogon                     0x00
  43 #define NETR_OPNUM_UasLogoff                    0x01
  44 #define NETR_OPNUM_SamLogon                     0x02
  45 #define NETR_OPNUM_SamLogoff                    0x03
  46 #define NETR_OPNUM_ServerReqChallenge           0x04
  47 #define NETR_OPNUM_ServerAuthenticate           0x05
  48 #define NETR_OPNUM_ServerPasswordSet            0x06
  49 #define NETR_OPNUM_DatabaseDeltas               0x07
  50 #define NETR_OPNUM_DatabaseSync                 0x08
  51 #define NETR_OPNUM_AccountDeltas                0x09
  52 #define NETR_OPNUM_AccountSync                  0x0a
  53 #define NETR_OPNUM_GetDCName                    0x0b
  54 #define NETR_OPNUM_LogonControl                 0x0c
  55 #define NETR_OPNUM_GetAnyDCName                 0x0d
  56 #define NETR_OPNUM_LogonControl2                0x0E
  57 #define NETR_OPNUM_ServerAuthenticate2          0x0F
  58 #define NETR_OPNUM_DatabaseSync2                0x10
  59 #define NETR_OPNUM_DatabaseRedo                 0x11


 378  * the correct fixup offsets.  If ndrgen did the right thing,
 379  * netr_validation_info would be one of the out parameters. However,
 380  * if we do it that way, the switch_value isn't known early enough to
 381  * do the fixup calculation. So it all has to go in netr_SamLogon.
 382  */
 383 struct netr_validation_info {
 384         WORD validation_level;
 385   SWITCH(validation_level)
 386         union netr_validation_u ru;
 387 };
 388 
 389 
 390 /*
 391  * WARNING
 392  *
 393  * Validation_level is really a WORD and authoritative is really a
 394  * BYTE. They are declared as DWORD here due to the way things are
 395  * unmarshalled. NT does not clear out the unused bytes in the
 396  * DWORD so they must be cast to get the correct value.
 397  */

 398 OPERATION(NETR_OPNUM_SamLogon)
 399 struct netr_SamLogon {
 400         IN              LPTSTR servername;
 401         IN              LPTSTR hostname;
 402         IN              struct netr_authenticator *auth;
 403         INOUT   struct netr_authenticator *ret_auth;
 404         IN              struct netr_login_info logon_info;
 405         INOUT   WORD validation_level;
 406   SWITCH(validation_level)
 407         OUT             union netr_validation_u ru;
 408         OUT             DWORD authoritative;
 409         OUT             DWORD status;
 410 };
 411 
 412 
 413 /*
 414  ***********************************************************************
 415  * SamLogoff
 416  ***********************************************************************
 417  */




   5  * Common Development and Distribution License (the "License").
   6  * You may not use this file except in compliance with the License.
   7  *
   8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 /*
  22  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
  23  * Use is subject to license terms.
  24  *
  25  * Copyright 2018 Nexenta Systems, Inc.  All rights reserved.
  26  */
  27 
  28 #ifndef _MLSVC_NETR_NDL_
  29 #define _MLSVC_NETR_NDL_
  30 
  31 /*
  32  ***********************************************************************
  33  *
  34  * NetLogon RPC (NETR) interface definition.
  35  *
  36  ***********************************************************************
  37  */
  38 
  39 #include <libmlrpc/ndrtypes.ndl>
  40 
  41 
  42 #define NETR_OPNUM_UasLogon                     0x00
  43 #define NETR_OPNUM_UasLogoff                    0x01
  44 #define NETR_OPNUM_SamLogon                     0x02
  45 #define NETR_OPNUM_SamLogoff                    0x03
  46 #define NETR_OPNUM_ServerReqChallenge           0x04
  47 #define NETR_OPNUM_ServerAuthenticate           0x05
  48 #define NETR_OPNUM_ServerPasswordSet            0x06
  49 #define NETR_OPNUM_DatabaseDeltas               0x07
  50 #define NETR_OPNUM_DatabaseSync                 0x08
  51 #define NETR_OPNUM_AccountDeltas                0x09
  52 #define NETR_OPNUM_AccountSync                  0x0a
  53 #define NETR_OPNUM_GetDCName                    0x0b
  54 #define NETR_OPNUM_LogonControl                 0x0c
  55 #define NETR_OPNUM_GetAnyDCName                 0x0d
  56 #define NETR_OPNUM_LogonControl2                0x0E
  57 #define NETR_OPNUM_ServerAuthenticate2          0x0F
  58 #define NETR_OPNUM_DatabaseSync2                0x10
  59 #define NETR_OPNUM_DatabaseRedo                 0x11


 378  * the correct fixup offsets.  If ndrgen did the right thing,
 379  * netr_validation_info would be one of the out parameters. However,
 380  * if we do it that way, the switch_value isn't known early enough to
 381  * do the fixup calculation. So it all has to go in netr_SamLogon.
 382  */
 383 struct netr_validation_info {
 384         WORD validation_level;
 385   SWITCH(validation_level)
 386         union netr_validation_u ru;
 387 };
 388 
 389 
 390 /*
 391  * WARNING
 392  *
 393  * Validation_level is really a WORD and authoritative is really a
 394  * BYTE. They are declared as DWORD here due to the way things are
 395  * unmarshalled. NT does not clear out the unused bytes in the
 396  * DWORD so they must be cast to get the correct value.
 397  */
 398 ALIGN(2)
 399 OPERATION(NETR_OPNUM_SamLogon)
 400 struct netr_SamLogon {
 401         IN              LPTSTR servername;
 402         IN              LPTSTR hostname;
 403         IN              struct netr_authenticator *auth;
 404         INOUT   struct netr_authenticator *ret_auth;
 405         IN              struct netr_login_info logon_info;
 406         INOUT   WORD validation_level;
 407   SWITCH(validation_level)
 408         OUT             union netr_validation_u ru;
 409         OUT             DWORD authoritative;
 410         OUT             DWORD status;
 411 };
 412 
 413 
 414 /*
 415  ***********************************************************************
 416  * SamLogoff
 417  ***********************************************************************
 418  */