Ignore:
Timestamp:
May 27, 2009, 11:39:15 AM (16 years ago)
Author:
Herwig Bauernfeind
Message:

Update 3.2 branch to 3.2.9

Location:
branches/samba-3.2.x/source/rpc_server
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/samba-3.2.x/source/rpc_server/srv_lsa_nt.c

    r228 r233  
    831831                                           &mapped_count);
    832832
     833        if (NT_STATUS_IS_ERR(status)) {
     834                return status;
     835        }
     836
    833837        /* Convert from lsa_TranslatedName2 to lsa_TranslatedName */
    834838        names_out = TALLOC_ARRAY(p->mem_ctx, struct lsa_TranslatedName,
  • branches/samba-3.2.x/source/rpc_server/srv_netlog_nt.c

    r136 r233  
    475475        struct netr_Credential srv_chal_out;
    476476
     477        /* According to Microsoft (see bugid #6099)
     478         * Windows 7 looks at the negotiate_flags
     479         * returned in this structure *even if the
     480         * call fails with access denied ! So in order
     481         * to allow Win7 to connect to a Samba NT style
     482         * PDC we set the flags before we know if it's
     483         * an error or not.
     484         */
     485
     486        /* 0x000001ff */
     487        srv_flgs = NETLOGON_NEG_ACCOUNT_LOCKOUT |
     488                   NETLOGON_NEG_PERSISTENT_SAMREPL |
     489                   NETLOGON_NEG_ARCFOUR |
     490                   NETLOGON_NEG_PROMOTION_COUNT |
     491                   NETLOGON_NEG_CHANGELOG_BDC |
     492                   NETLOGON_NEG_FULL_SYNC_REPL |
     493                   NETLOGON_NEG_MULTIPLE_SIDS |
     494                   NETLOGON_NEG_REDO |
     495                   NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL;
     496
     497        if (lp_server_schannel() != false) {
     498                srv_flgs |= NETLOGON_NEG_SCHANNEL;
     499        }
     500
     501        *r->out.negotiate_flags = srv_flgs;
     502
    477503        /* We use this as the key to store the creds: */
    478504        /* r->in.computer_name */
     
    522548        }
    523549
    524         srv_flgs = 0x000001ff;
    525 
    526         if (lp_server_schannel() != false) {
    527                 srv_flgs |= NETLOGON_NEG_SCHANNEL;
    528         }
    529 
    530550        /* set up the LSA AUTH 2 response */
    531551        memcpy(r->out.return_credentials->data, &srv_chal_out.data,
    532552               sizeof(r->out.return_credentials->data));
    533         *r->out.negotiate_flags = srv_flgs;
    534553
    535554        fstrcpy(p->dc->mach_acct, r->in.account_name);
     
    683702
    684703        memcpy(r->out.return_authenticator, &cred_out,
    685                sizeof(r->out.return_authenticator));
     704               sizeof(*(r->out.return_authenticator)));
    686705
    687706        TALLOC_FREE(sampass);
     
    13431362****************************************************************/
    13441363
    1345 WERROR _netr_NETRLOGONDUMMYROUTINE1(pipes_struct *p,
    1346                                     struct netr_NETRLOGONDUMMYROUTINE1 *r)
    1347 {
    1348         p->rng_fault_state = true;
    1349         return WERR_NOT_SUPPORTED;
     1364NTSTATUS _netr_LogonGetCapabilities(pipes_struct *p,
     1365                                    struct netr_LogonGetCapabilities *r)
     1366{
     1367        return NT_STATUS_NOT_IMPLEMENTED;
    13501368}
    13511369
  • branches/samba-3.2.x/source/rpc_server/srv_pipe.c

    r133 r233  
    21022102        auth_len = p->hdr.auth_len;
    21032103
    2104         if (auth_len != RPC_AUTH_SCHANNEL_SIGN_OR_SEAL_CHK_LEN) {
     2104        if (auth_len < RPC_AUTH_SCHANNEL_SIGN_OR_SEAL_CHK_LEN ||
     2105                        auth_len > RPC_HEADER_LEN +
     2106                                        RPC_HDR_REQ_LEN +
     2107                                        RPC_HDR_AUTH_LEN +
     2108                                        auth_len) {
    21052109                DEBUG(0,("Incorrect auth_len %u.\n", (unsigned int)auth_len ));
    21062110                return False;
  • branches/samba-3.2.x/source/rpc_server/srv_pipe_hnd.c

    r133 r233  
    602602         */
    603603       
    604         if(prs_offset(&p->in_data.data) + data_len > 15*1024*1024) {
     604        if(prs_offset(&p->in_data.data) + data_len > MAX_RPC_DATA_SIZE) {
    605605                DEBUG(0,("process_request_pdu: rpc data buffer too large (%u) + (%u)\n",
    606606                                (unsigned int)prs_data_size(&p->in_data.data), (unsigned int)data_len ));
  • branches/samba-3.2.x/source/rpc_server/srv_samr_nt.c

    r232 r233  
    11781178        *r->out.sam = samr_array;
    11791179        *r->out.num_entries = num_groups;
    1180         /* this was missing, IMHO:
    11811180        *r->out.resume_handle = num_groups + *r->in.resume_handle;
    1182         */
    11831181
    11841182        DEBUG(5,("_samr_EnumDomainGroups: %d\n", __LINE__));
  • branches/samba-3.2.x/source/rpc_server/srv_spoolss_nt.c

    r149 r233  
    47304730        }
    47314731
     4732        if (offered > MAX_RPC_DATA_SIZE) {
     4733                return WERR_INVALID_PARAM;
     4734        }
     4735
    47324736        rpcbuf_move(q_u->buffer, &r_u->buffer);
    47334737        buffer = r_u->buffer;
     
    50845088
    50855089        if (!q_u->buffer && (offered!=0)) {
     5090                return WERR_INVALID_PARAM;
     5091        }
     5092
     5093        if (offered > MAX_RPC_DATA_SIZE) {
    50865094                return WERR_INVALID_PARAM;
    50875095        }
     
    57455753
    57465754        if (!q_u->buffer && (offered!=0)) {
     5755                return WERR_INVALID_PARAM;
     5756        }
     5757
     5758        if (offered > MAX_RPC_DATA_SIZE) {
    57475759                return WERR_INVALID_PARAM;
    57485760        }
     
    68216833        }
    68226834
     6835        if (offered > MAX_RPC_DATA_SIZE) {
     6836                return WERR_INVALID_PARAM;
     6837        }
     6838
    68236839        rpcbuf_move(q_u->buffer, &r_u->buffer);
    68246840        buffer = r_u->buffer;
     
    71977213        }
    71987214
     7215        if (offered > MAX_RPC_DATA_SIZE) {
     7216                return WERR_INVALID_PARAM;
     7217        }
     7218
    71997219        rpcbuf_move(q_u->buffer, &r_u->buffer);
    72007220        buffer = r_u->buffer;
     
    72647284        }
    72657285
     7286        if (offered > MAX_RPC_DATA_SIZE) {
     7287                return WERR_INVALID_PARAM;
     7288        }
     7289
    72667290        rpcbuf_move(q_u->buffer, &r_u->buffer);
    72677291        buffer = r_u->buffer;
     
    76697693
    76707694        if (!q_u->buffer && (offered!=0)) {
     7695                return WERR_INVALID_PARAM;
     7696        }
     7697
     7698        if (offered > MAX_RPC_DATA_SIZE) {
    76717699                return WERR_INVALID_PARAM;
    76727700        }
     
    80818109        }
    80828110
     8111        if (offered > MAX_RPC_DATA_SIZE) {
     8112                return WERR_INVALID_PARAM;
     8113        }
     8114
    80838115        rpcbuf_move(q_u->buffer, &r_u->buffer);
    80848116        buffer = r_u->buffer;
     
    87088740        }
    87098741
     8742        if (offered > MAX_RPC_DATA_SIZE) {
     8743                return WERR_INVALID_PARAM;
     8744        }
     8745
    87108746        rpcbuf_move(q_u->buffer, &r_u->buffer);
    87118747        buffer = r_u->buffer;
     
    87878823        }
    87888824
     8825        if (offered > MAX_RPC_DATA_SIZE) {
     8826                return WERR_INVALID_PARAM;
     8827        }
     8828
    87898829        rpcbuf_move(q_u->buffer, &r_u->buffer);
    87908830        buffer = r_u->buffer;
     
    89128952
    89138953        if (!q_u->buffer && (offered!=0)) {
     8954                return WERR_INVALID_PARAM;
     8955        }
     8956
     8957        if (offered > MAX_RPC_DATA_SIZE) {
    89148958                return WERR_INVALID_PARAM;
    89158959        }
     
    90889132
    90899133        if (!q_u->buffer && (offered!=0)) {
     9134                return WERR_INVALID_PARAM;
     9135        }
     9136
     9137        if (offered > MAX_RPC_DATA_SIZE) {
    90909138                return WERR_INVALID_PARAM;
    90919139        }
     
    97329780        }
    97339781
     9782        if (offered > MAX_RPC_DATA_SIZE) {
     9783                return WERR_INVALID_PARAM;
     9784        }
     9785
    97349786        rpcbuf_move(q_u->buffer, &r_u->buffer);
    97359787        buffer = r_u->buffer;
  • branches/samba-3.2.x/source/rpc_server/srv_srvsvc_nt.c

    r228 r233  
    23292329        /*allow one struct srvsvc_NetDiskInfo0 for null terminator*/
    23302330
     2331        r->out.info->count = 0;
     2332
    23312333        for(i = 0; i < MAX_SERVER_DISK_ENTRIES -1 && (disk_name = next_server_disk_enum(&resume)); i++) {
    23322334
Note: See TracChangeset for help on using the changeset viewer.