Ignore:
Timestamp:
Nov 27, 2012, 4:43:17 PM (13 years ago)
Author:
Silvan Scherrer
Message:

Samba Server: updated trunk to 3.6.0

Location:
trunk/server
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/server

  • trunk/server/source4/auth/ntlm/auth_developer.c

    r414 r745  
    2424#include "auth/ntlm/auth_proto.h"
    2525#include "libcli/security/security.h"
    26 #include "librpc/gen_ndr/ndr_samr.h"
    2726
    2827static NTSTATUS name_to_ntstatus_want_check(struct auth_method_context *ctx,
     
    4948                                                TALLOC_CTX *mem_ctx,
    5049                                                const struct auth_usersupplied_info *user_info,
    51                                                 struct auth_serversupplied_info **_server_info)
     50                                                struct auth_)
    5251{
    5352        NTSTATUS nt_status;
    54         struct auth_serversupplied_info *server_info;
     53        struct auth_user_info_dc *user_info_dc;
     54        struct auth_user_info *info;
    5555        uint32_t error_num;
    5656        const char *user;
     
    6767        NT_STATUS_NOT_OK_RETURN(nt_status);
    6868
    69         server_info = talloc(mem_ctx, struct auth_serversupplied_info);
    70         NT_STATUS_HAVE_NO_MEMORY(server_info);
    71 
    72         server_info->account_sid = dom_sid_parse_talloc(server_info, SID_NT_ANONYMOUS);
    73         NT_STATUS_HAVE_NO_MEMORY(server_info->account_sid);
    74 
    75         /* is this correct? */
    76         server_info->primary_group_sid = dom_sid_parse_talloc(server_info, SID_BUILTIN_GUESTS);
    77         NT_STATUS_HAVE_NO_MEMORY(server_info->primary_group_sid);
    78 
    79         server_info->n_domain_groups = 0;
    80         server_info->domain_groups = NULL;
     69        user_info_dc = talloc(mem_ctx, struct auth_user_info_dc);
     70        NT_STATUS_HAVE_NO_MEMORY(user_info_dc);
     71
     72        /* This returns a pointer to a struct dom_sid, which is the
     73         * same as a 1 element list of struct dom_sid */
     74        user_info_dc->num_sids = 1;
     75        user_info_dc->sids = dom_sid_parse_talloc(user_info_dc, SID_NT_ANONYMOUS);
     76        NT_STATUS_HAVE_NO_MEMORY(user_info_dc->sids);
    8177
    8278        /* annoying, but the Anonymous really does have a session key,
    8379           and it is all zeros! */
    84         server_info->user_session_key = data_blob_talloc(server_info, NULL, 16);
    85         NT_STATUS_HAVE_NO_MEMORY(server_info->user_session_key.data);
    86 
    87         server_info->lm_session_key = data_blob_talloc(server_info, NULL, 16);
    88         NT_STATUS_HAVE_NO_MEMORY(server_info->lm_session_key.data);
    89 
    90         data_blob_clear(&server_info->user_session_key);
    91         data_blob_clear(&server_info->lm_session_key);
    92 
    93         server_info->account_name = talloc_asprintf(server_info, "NAME TO NTSTATUS %s ANONYMOUS LOGON", user);
    94         NT_STATUS_HAVE_NO_MEMORY(server_info->account_name);
    95 
    96         server_info->domain_name = talloc_strdup(server_info, "NT AUTHORITY");
    97         NT_STATUS_HAVE_NO_MEMORY(server_info->domain_name);
    98 
    99         server_info->full_name = talloc_asprintf(server_info, "NAME TO NTSTATUS %s Anonymous Logon", user);
    100         NT_STATUS_HAVE_NO_MEMORY(server_info->full_name);
    101 
    102         server_info->logon_script = talloc_strdup(server_info, "");
    103         NT_STATUS_HAVE_NO_MEMORY(server_info->logon_script);
    104 
    105         server_info->profile_path = talloc_strdup(server_info, "");
    106         NT_STATUS_HAVE_NO_MEMORY(server_info->profile_path);
    107 
    108         server_info->home_directory = talloc_strdup(server_info, "");
    109         NT_STATUS_HAVE_NO_MEMORY(server_info->home_directory);
    110 
    111         server_info->home_drive = talloc_strdup(server_info, "");
    112         NT_STATUS_HAVE_NO_MEMORY(server_info->home_drive);
    113 
    114         server_info->last_logon = 0;
    115         server_info->last_logoff = 0;
    116         server_info->acct_expiry = 0;
    117         server_info->last_password_change = 0;
    118         server_info->allow_password_change = 0;
    119         server_info->force_password_change = 0;
    120 
    121         server_info->logon_count = 0;
    122         server_info->bad_password_count = 0;
    123 
    124         server_info->acct_flags = ACB_NORMAL;
    125 
    126         server_info->authenticated = false;
    127 
    128         *_server_info = server_info;
     80        user_info_dc->user_session_key = data_blob_talloc(user_info_dc, NULL, 16);
     81        NT_STATUS_HAVE_NO_MEMORY(user_info_dc->user_session_key.data);
     82
     83        user_info_dc->lm_session_key = data_blob_talloc(user_info_dc, NULL, 16);
     84        NT_STATUS_HAVE_NO_MEMORY(user_info_dc->lm_session_key.data);
     85
     86        data_blob_clear(&user_info_dc->user_session_key);
     87        data_blob_clear(&user_info_dc->lm_session_key);
     88
     89        user_info_dc->info = info = talloc_zero(user_info_dc, struct auth_user_info);
     90        NT_STATUS_HAVE_NO_MEMORY(user_info_dc->info);
     91
     92        info->account_name = talloc_asprintf(user_info_dc, "NAME TO NTSTATUS %s ANONYMOUS LOGON", user);
     93        NT_STATUS_HAVE_NO_MEMORY(info->account_name);
     94
     95        info->domain_name = talloc_strdup(user_info_dc, "NT AUTHORITY");
     96        NT_STATUS_HAVE_NO_MEMORY(info->domain_name);
     97
     98        info->full_name = talloc_asprintf(user_info_dc, "NAME TO NTSTATUS %s Anonymous Logon", user);
     99        NT_STATUS_HAVE_NO_MEMORY(info->full_name);
     100
     101        info->logon_script = talloc_strdup(user_info_dc, "");
     102        NT_STATUS_HAVE_NO_MEMORY(info->logon_script);
     103
     104        info->profile_path = talloc_strdup(user_info_dc, "");
     105        NT_STATUS_HAVE_NO_MEMORY(info->profile_path);
     106
     107        info->home_directory = talloc_strdup(user_info_dc, "");
     108        NT_STATUS_HAVE_NO_MEMORY(info->home_directory);
     109
     110        info->home_drive = talloc_strdup(user_info_dc, "");
     111        NT_STATUS_HAVE_NO_MEMORY(info->home_drive);
     112
     113        info->last_logon = 0;
     114        info->last_logoff = 0;
     115        info->acct_expiry = 0;
     116        info->last_password_change = 0;
     117        info->allow_password_change = 0;
     118        info->force_password_change = 0;
     119
     120        info->logon_count = 0;
     121        info->bad_password_count = 0;
     122
     123        info->acct_flags = ACB_NORMAL;
     124
     125        info->authenticated = true;
     126
     127        *_user_info_dc = user_info_dc;
    129128
    130129        return nt_status;
     
    152151 * @return NT_STATUS_UNSUCCESSFUL
    153152 **/
    154 static NTSTATUS fixed_challenge_get_challenge(struct auth_method_context *ctx, TALLOC_CTX *mem_ctx, DATA_BLOB *_blob)
    155 {
    156         DATA_BLOB blob;
     153static NTSTATUS fixed_challenge_get_challenge(struct auth_method_context *ctx, TALLOC_CTX *mem_ctx, uint8_t chal[8])
     154{
    157155        const char *challenge = "I am a teapot";
    158156
    159         blob = data_blob_talloc(mem_ctx, challenge, 8);
    160         NT_STATUS_HAVE_NO_MEMORY(blob.data);
    161 
    162         *_blob = blob;
     157        memcpy(chal, challenge, 8);
     158
    163159        return NT_STATUS_OK;
    164160}
     
    175171                                               TALLOC_CTX *mem_ctx,
    176172                                               const struct auth_usersupplied_info *user_info,
    177                                                struct auth_serversupplied_info **_server_info)
     173                                               struct auth_)
    178174{
    179175        /* don't handle any users */
Note: See TracChangeset for help on using the changeset viewer.