return NULL;
}
- status = smb2_create_blob_add(req, &blobs,
- SMB2_CREATE_TAG_RQLS,
- data_blob_const(data, 32));
+ status = smb2_create_blob_add(
+ req, &blobs, SMB2_CREATE_TAG_RQLS,
+ data_blob_const(data, sizeof(data)));
if (!NT_STATUS_IS_OK(status)) {
talloc_free(req);
return NULL;
return NULL;
}
- status = smb2_create_blob_add(req, &blobs,
- SMB2_CREATE_TAG_RQLS,
- data_blob_const(data, 52));
+ status = smb2_create_blob_add(
+ req, &blobs, SMB2_CREATE_TAG_RQLS,
+ data_blob_const(data, sizeof(data)));
if (!NT_STATUS_IS_OK(status)) {
talloc_free(req);
return NULL;
return NULL;
}
+ if (((io->in.fname == NULL) || (strlen(io->in.fname) == 0)) &&
+ (blob.length == 0)) {
+ struct smb2_request_buffer *buf = &req->out;
+
+ status = smb2_grow_buffer(buf, 1);
+ if (!NT_STATUS_IS_OK(status)) {
+ talloc_free(req);
+ return NULL;
+ }
+ buf->dynamic[0] = 0;
+ buf->dynamic += 1;
+ buf->body_size += 1;
+ buf->size += 1;
+ }
+
data_blob_free(&blob);
smb2_transport_send(req);
switch (io->out.blobs.blobs[i].data.length) {
case 32:
ls = &io->out.lease_response;
+ ls->lease_version = 1;
break;
case 52:
ls = &io->out.lease_response_v2;
+ ls->lease_version = 2;
break;
default:
smb2_request_destroy(req);