commit f9d8053e6c1127fc5bc9d7c0ac3ae5e98263fcf8 Author: Steven Cheung cheung@csl.sri.com Date: Thu Jan 5 00:32:58 2012 +0000
fixed a bug in skipJSPattern()
git-svn-id: svn+ssh://spartan.csl.sri.com/svn/private/DEFIANCE@202 a58ff0ac-194c-e011-a152-003048836090 --- src/steg/payloads.cc | 2 +- src/steg/payloads.h | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/steg/payloads.cc b/src/steg/payloads.cc index 34c2963..8d08b1a 100644 --- a/src/steg/payloads.cc +++ b/src/steg/payloads.cc @@ -651,7 +651,7 @@ int skipJSPattern(char *cp, int len) { if (cp[j] != word[j]) goto next_word; } - if (!isalnum(cp[j])) + if (!isalnum(cp[j]) && cp[j] != JS_DELIMITER && cp[j] != JS_DELIMITER_REPLACEMENT) return strlen(word)+1;
next_word: diff --git a/src/steg/payloads.h b/src/steg/payloads.h index ace7dad..0104ee0 100644 --- a/src/steg/payloads.h +++ b/src/steg/payloads.h @@ -14,8 +14,6 @@ server_data, client data, protocol data */
- - #define RECV_GOOD 0 #define RECV_INCOMPLETE 0 #define RECV_BAD -1 @@ -35,7 +33,7 @@ #define JS_DELIMITER '?' // a JavaScript delimiter is used to signal the end of encoding // to facilitate the decoding process -#define JS_DELIMITER_REPLACEMENT '.' +#define JS_DELIMITER_REPLACEMENT '!' // JS_DELIMITER that exists in the JavaScript before the end of // data encoding will be replaced by JS_DELIMITER_REPLACEMENT #define JS_DELIMITER_SIZE 1 @@ -121,6 +119,7 @@ typedef struct service_state {
#define HTTP_MSG_BUF_SIZE 100000 + void load_payloads(const char* fname); unsigned int find_client_payload(char* buf, int len, int type); unsigned int find_server_payload(char** buf, int len, int type, int contentType);