|
|
|
@ -401,7 +401,8 @@ if (pstate == NULL)
|
|
|
|
for (u = pstate->parse_field; u < max_fields; u++) {
|
|
|
|
for (u = pstate->parse_field; u < max_fields; u++) {
|
|
|
|
printf("SMBParse: u %" PRIu32 "\n", u);
|
|
|
|
printf("SMBParse: u %" PRIu32 "\n", u);
|
|
|
|
switch (u) {
|
|
|
|
switch (u) {
|
|
|
|
case 0: {
|
|
|
|
case 0:
|
|
|
|
|
|
|
|
{
|
|
|
|
int r = AlpParseFieldBySize(output, pstate, SMB_PARSE_NBSS_HEADER,
|
|
|
|
int r = AlpParseFieldBySize(output, pstate, SMB_PARSE_NBSS_HEADER,
|
|
|
|
NBSS_HDR_LEN, input, input_len, &offset);
|
|
|
|
NBSS_HDR_LEN, input, input_len, &offset);
|
|
|
|
|
|
|
|
|
|
|
|
@ -411,7 +412,8 @@ for (u = pstate->parse_field; u < max_fields; u++) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
case 1: {
|
|
|
|
case 1:
|
|
|
|
|
|
|
|
{
|
|
|
|
uint8_t *data = input + offset;
|
|
|
|
uint8_t *data = input + offset;
|
|
|
|
uint32_t data_len = input_len - offset;
|
|
|
|
uint32_t data_len = input_len - offset;
|
|
|
|
if (sstate->nbss.type == NBSS_SESSION_MESSAGE) {
|
|
|
|
if (sstate->nbss.type == NBSS_SESSION_MESSAGE) {
|
|
|
|
@ -424,7 +426,8 @@ for (u = pstate->parse_field; u < max_fields; u++) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
case 2: {
|
|
|
|
case 2:
|
|
|
|
|
|
|
|
{
|
|
|
|
uint8_t *data = input + offset;
|
|
|
|
uint8_t *data = input + offset;
|
|
|
|
uint32_t data_len = input_len - offset;
|
|
|
|
uint32_t data_len = input_len - offset;
|
|
|
|
int r = AlpParseFieldBySize(output, pstate, SMB_PARSE_GET_WORDCOUNT,
|
|
|
|
int r = AlpParseFieldBySize(output, pstate, SMB_PARSE_GET_WORDCOUNT,
|
|
|
|
@ -435,7 +438,8 @@ for (u = pstate->parse_field; u < max_fields; u++) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
case 3: {
|
|
|
|
case 3:
|
|
|
|
|
|
|
|
{
|
|
|
|
uint8_t *data = input + offset;
|
|
|
|
uint8_t *data = input + offset;
|
|
|
|
uint32_t data_len = input_len - offset;
|
|
|
|
uint32_t data_len = input_len - offset;
|
|
|
|
printf("wordcount %d\n", sstate->wordcount.wordcount);
|
|
|
|
printf("wordcount %d\n", sstate->wordcount.wordcount);
|
|
|
|
@ -448,7 +452,8 @@ for (u = pstate->parse_field; u < max_fields; u++) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
case 4: {
|
|
|
|
case 4:
|
|
|
|
|
|
|
|
{
|
|
|
|
uint8_t *data = input + offset;
|
|
|
|
uint8_t *data = input + offset;
|
|
|
|
uint32_t data_len = input_len - offset;
|
|
|
|
uint32_t data_len = input_len - offset;
|
|
|
|
|
|
|
|
|
|
|
|
@ -460,7 +465,8 @@ for (u = pstate->parse_field; u < max_fields; u++) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
case 5: {
|
|
|
|
case 5:
|
|
|
|
|
|
|
|
{
|
|
|
|
uint8_t *data = input + offset;
|
|
|
|
uint8_t *data = input + offset;
|
|
|
|
uint32_t data_len = input_len - offset;
|
|
|
|
uint32_t data_len = input_len - offset;
|
|
|
|
|
|
|
|
|
|
|
|
|