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/libsmb
Files:
11 edited

Legend:

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

    r232 r233  
    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.2.x/source/libsmb/clientgen.c

    r232 r233  
    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.2.x/source/libsmb/clikrb5.c

    r204 r233  
    862862 bool get_krb5_smb_session_key(krb5_context context, krb5_auth_context auth_context, DATA_BLOB *session_key, bool remote)
    863863 {
    864         krb5_keyblock *skey;
    865         krb5_error_code err;
    866         bool ret = False;
    867 
    868         if (remote)
     864        krb5_keyblock *skey = NULL;
     865        krb5_error_code err = 0;
     866        bool ret = false;
     867
     868        if (remote) {
    869869                err = krb5_auth_con_getremotesubkey(context, auth_context, &skey);
    870         else
     870        } else {
    871871                err = krb5_auth_con_getlocalsubkey(context, auth_context, &skey);
    872         if (err == 0 && skey != NULL) {
    873                 DEBUG(10, ("Got KRB5 session key of length %d\n",  (int)KRB5_KEY_LENGTH(skey)));
    874                 *session_key = data_blob(KRB5_KEY_DATA(skey), KRB5_KEY_LENGTH(skey));
    875                 dump_data_pw("KRB5 Session Key:\n", session_key->data, session_key->length);
    876 
    877                 ret = True;
    878 
     872        }
     873
     874        if (err || skey == NULL) {
     875                DEBUG(10, ("KRB5 error getting session key %d\n", err));
     876                goto done;
     877        }
     878
     879        DEBUG(10, ("Got KRB5 session key of length %d\n",  (int)KRB5_KEY_LENGTH(skey)));
     880        *session_key = data_blob(KRB5_KEY_DATA(skey), KRB5_KEY_LENGTH(skey));
     881        dump_data_pw("KRB5 Session Key:\n", session_key->data, session_key->length);
     882
     883        ret = true;
     884
     885 done:
     886        if (skey) {
    879887                krb5_free_keyblock(context, skey);
    880         } else {
    881                 DEBUG(10, ("KRB5 error getting session key %d\n", err));
    882888        }
    883889
     
    17481754                        tmp = kt_str;
    17491755                        tmp += 5;
     1756                }
     1757
     1758                if (tmp[0] == '/') {
     1759                        /* Treat as a FILE: keytab definition. */
     1760                        found_valid_name = true;
    17501761                }
    17511762
  • branches/samba-3.2.x/source/libsmb/clitrans.c

    r136 r233  
    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.2.x/source/libsmb/dsgetdcname.c

    r232 r233  
    440440****************************************************************/
    441441
    442 #define RETURN_ON_FALSE(x) if (!x) return false;
     442#define RETURN_ON_FALSE(x) if (!(x)) return false;
    443443
    444444static bool check_cldap_reply_required_flags(uint32_t ret_flags,
  • branches/samba-3.2.x/source/libsmb/libsmb_dir.c

    r232 r233  
    11721172                              &targetcli, &targetpath)) {
    11731173                d_printf("Could not resolve %s\n", path);
    1174                 TALLOC_FREE(frame);
     1174                errno = ENOENT;
     1175                TALLOC_FREE(frame);
    11751176                return -1;
    11761177        }
     
    12791280                              &targetcli, &targetpath)) {
    12801281                d_printf("Could not resolve %s\n", path);
     1282                errno = ENOENT;
    12811283                TALLOC_FREE(frame);
    12821284                return -1;
     
    17441746                              &targetcli, &targetpath)) {
    17451747                d_printf("Could not resolve %s\n", path);
     1748                errno = ENOENT;
     1749                errno = ENOENT;
    17461750                TALLOC_FREE(frame);
    17471751                return -1;
     
    19101914                              &targetcli1, &targetpath1)) {
    19111915                d_printf("Could not resolve %s\n", path1);
     1916                errno = ENOENT;
    19121917                TALLOC_FREE(frame);
    19131918                return -1;
     
    19181923                              &targetcli2, &targetpath2)) {
    19191924                d_printf("Could not resolve %s\n", path2);
     1925                errno = ENOENT;
    19201926                TALLOC_FREE(frame);
    19211927                return -1;
  • branches/samba-3.2.x/source/libsmb/libsmb_file.c

    r228 r233  
    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.2.x/source/libsmb/libsmb_stat.c

    r133 r233  
    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.2.x/source/libsmb/namequery.c

    r232 r233  
    15031503
    15041504        DEBUG(10, ("internal_resolve_name: looking up %s#%x (sitename %s)\n",
    1505                         name, name_type, sitename ? sitename : NULL));
     1505                        name, name_type, sitename ? sitename : "(null)"));
    15061506
    15071507        if (is_ipaddress(name)) {
     
    21422142                        bool ads_only )
    21432143{
    2144         bool ordered;
     2144        bool ordered = false;
    21452145        NTSTATUS status;
    21462146        enum dc_lookup_type lookup_type = DC_NORMAL_LOOKUP;
  • branches/samba-3.2.x/source/libsmb/smb_seal.c

    r228 r233  
    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.2.x/source/libsmb/unexpected.c

    r133 r233  
    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.