Ignore:
Timestamp:
Jul 2, 2011, 4:01:14 PM (14 years ago)
Author:
Herwig Bauernfeind
Message:

Samba 3.5: Update vendor to version 3.5.9

File:
1 edited

Legend:

Unmodified
Added
Removed
  • vendor/current/source3/smbd/sesssetup.c

    r587 r597  
    11021102
    11031103        asn1_load(data, *pblob);
    1104         asn1_start_tag(data, pblob->data[0]);
    1105         if (data->has_error || data->nesting == NULL) {
     1104        if (asn1_start_tag(data, pblob->data[0])) {
     1105                /* asn1_start_tag checks if the given
     1106                   length of the blob is enough to complete
     1107                   the tag. If it returns true we know
     1108                   there is nothing to do - the blob is
     1109                   complete. */
    11061110                asn1_free(data);
    1107                 /* Let caller catch. */
    11081111                return NT_STATUS_OK;
    11091112        }
     1113
     1114        if (data->nesting == NULL) {
     1115                /* Incorrect tag, allocation failed,
     1116                   or reading the tag length failed.
     1117                   Let the caller catch. */
     1118                asn1_free(data);
     1119                return NT_STATUS_OK;
     1120        }
     1121
     1122        /* Here we know asn1_start_tag() has set data->has_error to true.
     1123           asn1_tag_remaining() will have failed due to the given blob
     1124           being too short. We need to work out how short. */
    11101125
    11111126        /* Integer wrap paranoia.... */
     
    11371152        if (needed_len <= pblob->length) {
    11381153                /* Nothing to do - blob is complete. */
     1154                /* THIS SHOULD NOT HAPPEN - asn1_start_tag()
     1155                   above should have caught this !!! */
     1156                DEBUG(0,("check_spnego_blob_complete: logic "
     1157                        "error (needed_len = %u, "
     1158                        "pblob->length = %u).\n",
     1159                        (unsigned int)needed_len,
     1160                        (unsigned int)pblob->length ));
    11391161                return NT_STATUS_OK;
    11401162        }
Note: See TracChangeset for help on using the changeset viewer.