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

Samba Server: updated vendor to 3.6.9

File:
1 edited

Legend:

Unmodified
Added
Removed
  • vendor/current/source3/libsmb/cliconnect.c

    r740 r746  
    362362 fail:
    363363        TALLOC_FREE(frame);
    364         if (!NT_STATUS_IS_OK(status)) {
    365                 cli_set_error(cli, status);
    366         }
    367364        return status;
    368365}
     
    599596 fail:
    600597        TALLOC_FREE(frame);
    601         if (!NT_STATUS_IS_OK(status)) {
    602                 cli_set_error(cli, status);
    603         }
    604598        return status;
    605599}
     
    803797 fail:
    804798        TALLOC_FREE(frame);
    805         if (!NT_STATUS_IS_OK(status)) {
    806                 cli_set_error(cli, status);
    807         }
    808799        return status;
    809800}
     
    11711162 fail:
    11721163        TALLOC_FREE(frame);
    1173         if (!NT_STATUS_IS_OK(status)) {
    1174                 cli_set_error(cli, status);
    1175         }
    11761164        return status;
    11771165}
     
    17891777fail:
    17901778        TALLOC_FREE(ev);
    1791         if (!NT_STATUS_IS_OK(status)) {
    1792                 cli_set_error(cli, status);
    1793         }
    17941779        return status;
    17951780}
     
    20131998
    20141999        if (cli->protocol < PROTOCOL_LANMAN1) {
     2000                /*
     2001                 * Ensure cli->server_domain,
     2002                 * cli->server_os and cli->server_type
     2003                 * are valid pointers.
     2004                 */
     2005                cli->server_domain = talloc_strdup(cli, "");
     2006                cli->server_os = talloc_strdup(cli, "");
     2007                cli->server_type = talloc_strdup(cli, "");
     2008                if (cli->server_domain == NULL ||
     2009                                cli->server_os == NULL ||
     2010                                cli->server_type == NULL) {
     2011                        return NT_STATUS_NO_MEMORY;
     2012                }
    20152013                return NT_STATUS_OK;
    20162014        }
     
    21762174fail:
    21772175        TALLOC_FREE(ev);
    2178         if (!NT_STATUS_IS_OK(status)) {
    2179                 cli_set_error(cli, status);
    2180         }
    21812176        return status;
    21822177}
     
    24722467 fail:
    24732468        TALLOC_FREE(frame);
    2474         if (!NT_STATUS_IS_OK(status)) {
    2475                 cli_set_error(cli, status);
    2476         }
    24772469        return status;
    24782470}
     
    25552547fail:
    25562548        TALLOC_FREE(ev);
    2557         if (!NT_STATUS_IS_OK(status)) {
    2558                 cli_set_error(cli, status);
    2559         }
    25602549        return status;
    25612550}
     
    26672656                struct timespec ts;
    26682657                bool negotiated_smb_signing = false;
     2658                DATA_BLOB blob = data_blob_null;
     2659
     2660                if (wct != 0x11) {
     2661                        tevent_req_nterror(req, NT_STATUS_INVALID_NETWORK_RESPONSE);
     2662                        return;
     2663                }
    26692664
    26702665                /* NT protocol */
     
    26872682                if (!(cli->capabilities & CAP_EXTENDED_SECURITY) &&
    26882683                    smb_buflen(inbuf) > 8) {
     2684                        blob = data_blob_const(bytes + 8, num_bytes - 8);
     2685                }
     2686
     2687                if (blob.length > 0) {
    26892688                        ssize_t ret;
    2690                         status = smb_bytes_talloc_string(
    2691                                 cli, (char *)inbuf, &cli->server_domain,
    2692                                 bytes + 8, num_bytes - 8, &ret);
    2693                         if (tevent_req_nterror(req, status)) {
     2689                        char *server_domain = NULL;
     2690
     2691                        ret = clistr_pull_talloc(cli,
     2692                                                 (const char *)inbuf,
     2693                                                 SVAL(inbuf, smb_flg2),
     2694                                                 &server_domain,
     2695                                                 (char *)blob.data,
     2696                                                 blob.length,
     2697                                                 STR_TERMINATE|
     2698                                                 STR_UNICODE|
     2699                                                 STR_NOALIGN);
     2700                        if (ret == -1) {
     2701                                tevent_req_nterror(req, NT_STATUS_NO_MEMORY);
    26942702                                return;
     2703                        }
     2704                        if (server_domain) {
     2705                                cli->server_domain = server_domain;
    26952706                        }
    26962707                }
     
    27412752
    27422753        } else if (cli->protocol >= PROTOCOL_LANMAN1) {
     2754                if (wct != 0x0D) {
     2755                        tevent_req_nterror(req, NT_STATUS_INVALID_NETWORK_RESPONSE);
     2756                        return;
     2757                }
     2758
    27432759                cli->use_spnego = False;
    27442760                cli->sec_mode = SVAL(vwv + 1, 0);
     
    28102826 fail:
    28112827        TALLOC_FREE(frame);
    2812         if (!NT_STATUS_IS_OK(status)) {
    2813                 cli_set_error(cli, status);
    2814         }
    28152828        return status;
    28162829}
Note: See TracChangeset for help on using the changeset viewer.