| 146 |
amount_in_buf += grabbed; |
amount_in_buf += grabbed; |
| 147 |
buf += grabbed; |
buf += grabbed; |
| 148 |
buflen -= grabbed; |
buflen -= grabbed; |
| 149 |
|
} |
| 150 |
} else if (!pvar->pkt_state.seen_server_ID && |
else if (!pvar->pkt_state.seen_server_ID && (pvar->pkt_state.seen_newline || pvar->pkt_state.datalen >= 255)) { |
| 151 |
(pvar->pkt_state.seen_newline || pvar->pkt_state.datalen >= 255)) { |
/* |
| 152 |
/* We're looking for the initial ID string and either we've seen the |
* We're looking for the initial ID string and either we've seen the |
| 153 |
terminating newline, or we've exceeded the limit at which we should see |
* terminating newline, or we've exceeded the limit at which we should see a newline. |
| 154 |
a newline. */ |
*/ |
| 155 |
unsigned int i; |
unsigned int i; |
| 156 |
|
|
| 157 |
for (i = 0; pvar->pkt_state.buf[i] != '\n' && i < pvar->pkt_state.datalen; i++) { |
for (i = 0; pvar->pkt_state.buf[i] != '\n' && i < pvar->pkt_state.datalen; i++) { |
| 175 |
|
|
| 176 |
pvar->pkt_state.datastart += i; |
pvar->pkt_state.datastart += i; |
| 177 |
pvar->pkt_state.datalen -= i; |
pvar->pkt_state.datalen -= i; |
| 178 |
|
} |
| 179 |
} else if (pvar->pkt_state.seen_server_ID && |
else if (pvar->pkt_state.seen_server_ID && pvar->pkt_state.datalen >= (unsigned int) SSH_get_min_packet_size(pvar)) { |
|
pvar->pkt_state.datalen >= (unsigned int) SSH_get_min_packet_size(pvar)) { |
|
| 180 |
char *data = pvar->pkt_state.buf + pvar->pkt_state.datastart; |
char *data = pvar->pkt_state.buf + pvar->pkt_state.datastart; |
| 181 |
uint32 padding; |
uint32 padding; |
| 182 |
uint32 pktsize; |
uint32 pktsize; |
| 205 |
|
|
| 206 |
if (total_packet_size <= pvar->pkt_state.datalen) { |
if (total_packet_size <= pvar->pkt_state.datalen) { |
| 207 |
/* the data must be 4 byte aligned. */ |
/* the data must be 4 byte aligned. */ |
| 208 |
SSH_handle_packet(pvar, data, pktsize, padding); |
if (SSHv1(pvar)) { |
| 209 |
|
SSH_handle_packet1(pvar, data, pktsize, padding); |
| 210 |
|
} |
| 211 |
|
else { |
| 212 |
|
SSH_handle_packet2(pvar, data, pktsize, padding); |
| 213 |
|
} |
| 214 |
pvar->pkt_state.predecrypted_packet = FALSE; |
pvar->pkt_state.predecrypted_packet = FALSE; |
| 215 |
|
|
| 216 |
pvar->pkt_state.datastart += total_packet_size; |
pvar->pkt_state.datastart += total_packet_size; |