Ignore:
Timestamp:
May 24, 2009, 7:51:24 AM (16 years ago)
Author:
Herwig Bauernfeind
Message:

Update Samba 3.3 branch to 3.3.3

Location:
branches/samba-3.3.x/source/libsmb
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • branches/samba-3.3.x/source/libsmb/clidfs.c

    r206 r223  
    666666                                        const char *dir)
    667667{
     668        char path_sep = '\\';
     669
    668670        /* Ensure the extrapath doesn't start with a separator. */
    669671        while (IS_DIRECTORY_SEP(*dir)) {
     
    671673        }
    672674
    673         return talloc_asprintf(ctx, "\\%s\\%s\\%s",
    674                         cli->desthost, cli->share, dir);
     675        if (cli->posix_capabilities & CIFS_UNIX_POSIX_PATHNAMES_CAP) {
     676                path_sep = '/';
     677        }
     678        return talloc_asprintf(ctx, "%c%s%c%s%c%s",
     679                        path_sep,
     680                        cli->desthost,
     681                        path_sep,
     682                        cli->share,
     683                        path_sep,
     684                        dir);
    675685}
    676686
  • branches/samba-3.3.x/source/libsmb/clientgen.c

    r206 r223  
    517517        SAFE_FREE(cli->inbuf);
    518518        SAFE_FREE(cli->outbuf);
    519         SAFE_FREE(cli);
     519        TALLOC_FREE(cli);
    520520        return NULL;
    521521}
  • branches/samba-3.3.x/source/libsmb/clikrb5.c

    r221 r223  
    869869 bool get_krb5_smb_session_key(krb5_context context, krb5_auth_context auth_context, DATA_BLOB *session_key, bool remote)
    870870 {
    871         krb5_keyblock *skey;
    872         krb5_error_code err;
    873         bool ret = False;
    874 
    875         if (remote)
     871        krb5_keyblock *skey = NULL;
     872        krb5_error_code err = 0;
     873        bool ret = false;
     874
     875        if (remote) {
    876876                err = krb5_auth_con_getremotesubkey(context, auth_context, &skey);
    877         else
     877        } else {
    878878                err = krb5_auth_con_getlocalsubkey(context, auth_context, &skey);
    879         if (err == 0 && skey != NULL) {
    880                 DEBUG(10, ("Got KRB5 session key of length %d\n",  (int)KRB5_KEY_LENGTH(skey)));
    881                 *session_key = data_blob(KRB5_KEY_DATA(skey), KRB5_KEY_LENGTH(skey));
    882                 dump_data_pw("KRB5 Session Key:\n", session_key->data, session_key->length);
    883 
    884                 ret = True;
    885 
     879        }
     880
     881        if (err || skey == NULL) {
     882                DEBUG(10, ("KRB5 error getting session key %d\n", err));
     883                goto done;
     884        }
     885
     886        DEBUG(10, ("Got KRB5 session key of length %d\n",  (int)KRB5_KEY_LENGTH(skey)));
     887        *session_key = data_blob(KRB5_KEY_DATA(skey), KRB5_KEY_LENGTH(skey));
     888        dump_data_pw("KRB5 Session Key:\n", session_key->data, session_key->length);
     889
     890        ret = true;
     891
     892 done:
     893        if (skey) {
    886894                krb5_free_keyblock(context, skey);
    887         } else {
    888                 DEBUG(10, ("KRB5 error getting session key %d\n", err));
    889895        }
    890896
  • branches/samba-3.3.x/source/libsmb/clitrans.c

    r206 r223  
    113113                        this_ldata = MIN(ldata-tot_data,cli->max_xmit - (500+this_lparam));
    114114
    115                         client_set_trans_sign_state_off(cli, mid);
    116                         client_set_trans_sign_state_on(cli, mid);
    117 
    118115                        cli_set_message(cli->outbuf,trans==SMBtrans?8:9,0,True);
    119116                        SCVAL(cli->outbuf,smb_com,(trans==SMBtrans ? SMBtranss : SMBtranss2));
     
    139136                        cli_setup_bcc(cli, outdata+this_ldata);
    140137
    141                         /*
    142                          * Save the mid we're using. We need this for finding
    143                          * signing replies.
    144                          */
    145                         mid = cli->mid;
    146 
    147138                        show_msg(cli->outbuf);
     139
     140                        client_set_trans_sign_state_off(cli, mid);
     141                        cli->mid = mid;
    148142                        if (!cli_send_smb(cli)) {
    149                                 client_set_trans_sign_state_off(cli, mid);
    150143                                return False;
    151144                        }
    152 
    153                         /* Ensure we use the same mid for the secondaries. */
    154                         cli->mid = mid;
     145                        client_set_trans_sign_state_on(cli, mid);
    155146
    156147                        tot_data += this_ldata;
     
    462453                        cli_setup_bcc(cli, outdata+this_ldata);
    463454
    464                         /*
    465                          * Save the mid we're using. We need this for finding
    466                          * signing replies.
    467                          */
    468                         mid = cli->mid;
    469 
    470455                        show_msg(cli->outbuf);
    471456
     457                        client_set_trans_sign_state_off(cli, mid);
     458                        cli->mid = mid;
    472459                        if (!cli_send_smb(cli)) {
    473                                 client_set_trans_sign_state_off(cli, mid);
    474460                                return False;
    475461                        }
    476 
    477                         /* Ensure we use the same mid for the secondaries. */
    478                         cli->mid = mid;
     462                        client_set_trans_sign_state_on(cli, mid);
    479463
    480464                        tot_data += this_ldata;
  • branches/samba-3.3.x/source/libsmb/dsgetdcname.c

    r222 r223  
    312312****************************************************************/
    313313
    314 #define RETURN_ON_FALSE(x) if (!x) return false;
     314#define RETURN_ON_FALSE(x) if (!(x)) return false;
    315315
    316316static bool check_cldap_reply_required_flags(uint32_t ret_flags,
  • branches/samba-3.3.x/source/libsmb/libsmb_dir.c

    r221 r223  
    11701170                              &targetcli, &targetpath)) {
    11711171                d_printf("Could not resolve %s\n", path);
    1172                 TALLOC_FREE(frame);
     1172                errno = ENOENT;
     1173                TALLOC_FREE(frame);
    11731174                return -1;
    11741175        }
     
    12771278                              &targetcli, &targetpath)) {
    12781279                d_printf("Could not resolve %s\n", path);
     1280                errno = ENOENT;
    12791281                TALLOC_FREE(frame);
    12801282                return -1;
     
    15591561                              &targetcli, &targetpath)) {
    15601562                d_printf("Could not resolve %s\n", path);
     1563                errno = ENOENT;
    15611564                TALLOC_FREE(frame);
    15621565                return -1;
     
    17501753                              &targetcli, &targetpath)) {
    17511754                d_printf("Could not resolve %s\n", path);
     1755                errno = ENOENT;
    17521756                TALLOC_FREE(frame);
    17531757                return -1;
     
    19221926                              &targetcli1, &targetpath1)) {
    19231927                d_printf("Could not resolve %s\n", path1);
     1928                errno = ENOENT;
    19241929                TALLOC_FREE(frame);
    19251930                return -1;
     
    19371942                              &targetcli2, &targetpath2)) {
    19381943                d_printf("Could not resolve %s\n", path2);
     1944                errno = ENOENT;
    19391945                TALLOC_FREE(frame);
    19401946                return -1;
  • branches/samba-3.3.x/source/libsmb/libsmb_file.c

    r221 r223  
    119119                                      &targetcli, &targetpath)) {
    120120                        d_printf("Could not resolve %s\n", path);
     121                        errno = ENOENT;
    121122                        SAFE_FREE(file);
    122123                        TALLOC_FREE(frame);
     
    299300                              &targetcli, &targetpath)) {
    300301                d_printf("Could not resolve %s\n", path);
     302                errno = ENOENT;
    301303                TALLOC_FREE(frame);
    302304                return -1;
     
    388390                              &targetcli, &targetpath)) {
    389391                d_printf("Could not resolve %s\n", path);
     392                errno = ENOENT;
    390393                TALLOC_FREE(frame);
    391394                return -1;
     
    463466                              &targetcli, &targetpath)) {
    464467                d_printf("Could not resolve %s\n", path);
     468                errno = ENOENT;
    465469                TALLOC_FREE(frame);
    466470                return -1;
     
    545549                              &targetcli, &targetpath)) {
    546550                d_printf("Couldn't resolve %s\n", path);
     551                errno = ENOENT;
    547552                TALLOC_FREE(frame);
    548553                return False;
     
    757762                                      &targetcli, &targetpath)) {
    758763                        d_printf("Could not resolve %s\n", path);
     764                        errno = ENOENT;
    759765                        TALLOC_FREE(frame);
    760766                        return -1;
     
    848854                              &targetcli, &targetpath)) {
    849855                d_printf("Could not resolve %s\n", path);
     856                errno = ENOENT;
    850857                TALLOC_FREE(frame);
    851858                return -1;
  • branches/samba-3.3.x/source/libsmb/libsmb_stat.c

    r221 r223  
    261261                              &targetcli, &targetpath)) {
    262262                d_printf("Could not resolve %s\n", path);
     263                errno = ENOENT;
    263264                TALLOC_FREE(frame);
    264265                return -1;
  • branches/samba-3.3.x/source/libsmb/smb_seal.c

    r206 r223  
    137137        smb_set_enclen(buf_out, smb_len(buf) + NTLMSSP_SIG_SIZE, enc_ctx_num);
    138138
    139         sig = data_blob(NULL, NTLMSSP_SIG_SIZE);
     139        ZERO_STRUCT(sig);
    140140
    141141        status = ntlmssp_seal_packet(ntlmssp_state,
     
    154154        /* First 16 data bytes are signature for SSPI compatibility. */
    155155        memcpy(buf_out + 8, sig.data, NTLMSSP_SIG_SIZE);
     156        data_blob_free(&sig);
    156157        *ppbuf_out = buf_out;
    157158        return NT_STATUS_OK;
  • branches/samba-3.3.x/source/libsmb/unexpected.c

    r206 r223  
    164164                        port);
    165165
     166        if (!p) {
     167                return 0;
     168        }
     169
    166170        if ((state->match_type == NMB_PACKET &&
    167171             p->packet.nmb.header.name_trn_id == state->match_id) ||
Note: See TracChangeset for help on using the changeset viewer.