'Reads a buffer on the client and sends it to the server.'

def Run(self, args):

    if (args.length > constants.CLIENT_MAX_BUFFER_SIZE):
        raise RuntimeError('Can    not    read    buffers    this    large.')
    try:
        fd = vfs.VFSOpen(args.pathspec, progress_callback=self.Progress)
        fd.Seek(args.offset)
        offset = fd.Tell()
        data = fd.Read(args.length)
    except (IOError, OSError) as e:
        self.SetStatus(rdf_flows.GrrStatus.ReturnedStatus.IOERROR, e)
        return
    self.SendReply(rdf_client.BufferReference(offset=offset, data=data, length=len(data), pathspec=fd.pathspec))
