Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
function handle(msg, commandId, commandParams, commandData, commandParamsOffset, commandDataOffset, connection, server, cb) {
// decode params
var parser = binary.parse(commandParams);
var paramsObj = parser.skip(4) // skip andX header
.word16le('fid')
.word32le('offset')
.word32le('timeout')
.word16le('writeMode')
.word16le('remaining')
.word16le('dataLengthHigh')
.word16le('dataLength')
.word16le('dataOffset')
.vars;
_.assign(msg, paramsObj);
if (commandParams.length === 28) {
// the last 4 bytes are offsetHigh
msg.offset = Long.fromBits(msg.offset, commandParams.readUInt32LE(24), true).toNumber();
}
function handle(msg, commandId, commandParams, commandData, commandParamsOffset, commandDataOffset, connection, server, cb) {
// decode params
var parser = binary.parse(commandParams);
var paramsObj = parser.skip(4) // skip andX header
.word16le('fid')
.word8('typeOfLock')
.word8('newOpLockLevel')
.word32le('timeout')
.word16le('numberOfRequestedUnlocks')
.word16le('numberOfRequestedLocks')
.vars;
_.assign(msg, paramsObj);
// decode data
parser = binary.parse(commandData);
msg.unlocks = parseRanges(parser, msg.numberOfRequestedUnlocks, msg.typeOfLock & SMB.LARGE_FILES);
msg.locks = parseRanges(parser, msg.numberOfRequestedLocks, msg.typeOfLock & SMB.LARGE_FILES);
var tree = server.getTree(msg.header.tid);
function handle(msg, commandId, commandParams, commandData, commandParamsOffset, commandDataOffset, connection, server, cb) {
// decode params
var parser = binary.parse(commandParams);
var paramsObj = parser.word16le('totalParameterCount') // bytes (not words)
.word16le('totalDataCount')
.word16le('maxParameterCount') // bytes (not words)
.word16le('maxDataCount')
.word8le('maxSetupCount')
.skip(1) // reserved1
.word16le('flags')
.word32le('timeout')
.skip(2) // reserved2
.word16le('parameterCount') // bytes (not words)
.word16le('parameterOffset')
.word16le('dataCount')
.word16le('dataOffset')
.word8le('setupCount')
.skip(1) // reserved3
.buffer('setup', 2 * parser.vars['setupCount'])
this._pullStream.pull(42, function (err, data) {
if (err) {
return self.emit('error', err);
}
var vars = binary.parse(data)
.word16lu('versionMadeBy')
.word16lu('versionsNeededToExtract')
.word16lu('flags')
.word16lu('compressionMethod')
.word16lu('lastModifiedTime')
.word16lu('lastModifiedDate')
.word32lu('crc32')
.word32lu('compressedSize')
.word32lu('uncompressedSize')
.word16lu('fileNameLength')
.word16lu('extraFieldLength')
.word16lu('fileCommentLength')
.word16lu('diskNumber')
.word16lu('internalFileAttributes')
.word32lu('externalFileAttributes')
.word32lu('offsetToLocalFileHeader')
if(event.commandCode !== COMMANDS.SB) {
OPTION_IMPLS.NO_ARGS(bufs, i, event);
} else {
// We need 4 bytes header + data + IAC SE
if(bufs.length < 7) {
return MORE_DATA_REQUIRED;
}
let end = bufs.indexOf(IAC_SE_BUF, 5); // look past header bytes
if(-1 === end) {
return MORE_DATA_REQUIRED;
}
// eat up and process the header
let buf = bufs.splice(0, 4).toBuffer();
binary.parse(buf)
.word8('iac1')
.word8('sb')
.word8('ttype')
.word8('is')
.tap(function(vars) {
assert(vars.iac1 === COMMANDS.IAC);
assert(vars.sb === COMMANDS.SB);
assert(vars.ttype === OPTIONS.TERMINAL_TYPE);
assert(vars.is === SB_COMMANDS.IS);
});
// eat up the rest
end -= 4;
buf = bufs.splice(0, end).toBuffer();
//
return function() {
var v = binary.parse(data);
var header = Header( v );
var lyrics = Lyrics( v );
var techInfo = TechInfo ( v );
return v.vars;
};
};
function _decodeDescribeConfigsResponse (resp, apiVersion) {
let resources = [];
let error;
Binary.parse(resp)
.word32bs('size')
.word32bs('correlationId')
.word32bs('throttleTime')
.word32bs('resourceNum')
.loop(decodeResources);
function decodeResources (end, vars) {
if (vars.resourceNum-- === 0) return end();
let resource = { configEntries: [] };
this.word16bs('errorCode')
.word16bs('errorMessage')
.tap(function (vars) {
if (vars.errorCode !== 0) {
if (vars.errorMessage === -1) {
vars.errorMessage = '';
var vars = binary.parse(data)
.buffer("head", 3)
.word8("msgType")
.word32bu("msgSize")
.buffer("body", data.length)
.vars
;
if (vars.head.toString() != "Bin") {
logger.error("malformed request header received");
return false;
}
vars.head = vars.head.toString();
var req = binary.parse(vars.body)
.word32bu("strSize")
.buffer("method", "strSize")
.word32bu("elementcount")
.buffer("body", data.length)
.vars
switch (vars.msgType) {
case 0:
var res = this.parseStrangeRequest(req.body);
var method = req.method.toString();
switch (method) {
case "system.multicall":
data = res[0];
logger.verbose("binrpc <-- "+name+" request system.multicall " + data.length);
response = [];
for (var i = 0; i < data.length; i++) {