Browse Source

Update goodbyedpi.c

pull/319/head
SashaXser 2 years ago
committed by GitHub
parent
commit
e98f20bfdc
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 15
      src/goodbyedpi.c

15
src/goodbyedpi.c

@ -428,25 +428,26 @@ static inline void change_window_size(const PWINDIVERT_TCPHDR ppTcpHdr, unsigned
/* HTTP method end without trailing space */ /* HTTP method end without trailing space */
static PVOID find_http_method_end(const char *pkt, unsigned int http_frag, int *is_fragmented) { static PVOID find_http_method_end(const char *pkt, unsigned int http_frag, int *is_fragmented) {
unsigned int i; unsigned int i;
unsigned int pkt_length = strlen(pkt);
for (i = 0; i<(sizeof(http_methods) / sizeof(*http_methods)); i++) { for (i = 0; i<(sizeof(http_methods) / sizeof(*http_methods)); i++) {
unsigned int method_length = strlen(http_methods[i]); unsigned int method_length = strlen(http_methods[i]);
if (memcmp(pkt, http_methods[i], method_length) == 0) { if (strncasecmp(pkt, http_methods[i], method_length) == 0) {
if (is_fragmented) if (is_fragmented)
*is_fragmented = 0; *is_fragmented = 0;
if (method_length - 1 <= pkt_length) char *end = strchr(pkt + method_length, ' ');
return (char*)pkt + method_length - 1; if (end != NULL && end - pkt <= pkt_length)
return end;
} }
/* Try to find HTTP method in a second part of fragmented packet */ /* Try to find HTTP method in a second part of fragmented packet */
if ((http_frag == 1 || http_frag == 2) && if ((http_frag == 1 || http_frag == 2) &&
memcmp(pkt, http_methods[i] + http_frag, strncasecmp(pkt, http_methods[i] + http_frag,
method_length - http_frag) == 0 method_length - http_frag) == 0
) )
{ {
if (is_fragmented) if (is_fragmented)
*is_fragmented = 1; *is_fragmented = 1;
if (method_length - http_frag - 1 <= pkt_length) char *end = strchr(pkt + method_length - http_frag, ' ');
return (char*)pkt + method_length - http_frag - 1; if (end != NULL && end - pkt <= pkt_length)
return end;
} }
} }
return NULL; return NULL;

Loading…
Cancel
Save