diff options
author | Benny Prijono <bennylp@teluu.com> | 2009-03-12 11:25:11 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2009-03-12 11:25:11 +0000 |
commit | ba9d8ca28eb209571c0bd6a080a8bb03d0fa2d33 (patch) | |
tree | 6f32a52e5bb80196bdffa66de1292ea5bda050c4 /pjlib-util/src/pjlib-util/scanner.c | |
parent | 42ee8666dff7f9689ea1ff50409d5170a8417838 (diff) |
Initial fixes for ticket #747: bugs in parsing SIP torture messages (RFC 4475):
- SIP version components may be separated by whitespaces (e.g. "SIP / 2.0")
- parsing of mangled header when for unknown/generic header
- Via parameters were parsed with paramchar rather than token
- handling NULL character inside quoted string
Some torture messages have been added in the Python test.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2505 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjlib-util/src/pjlib-util/scanner.c')
-rw-r--r-- | pjlib-util/src/pjlib-util/scanner.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/pjlib-util/src/pjlib-util/scanner.c b/pjlib-util/src/pjlib-util/scanner.c index a5a56160..6e01ba6f 100644 --- a/pjlib-util/src/pjlib-util/scanner.c +++ b/pjlib-util/src/pjlib-util/scanner.c @@ -28,7 +28,7 @@ #define PJ_SCAN_IS_SPACE(c) ((c)==' ' || (c)=='\t') #define PJ_SCAN_IS_NEWLINE(c) ((c)=='\r' || (c)=='\n') #define PJ_SCAN_IS_PROBABLY_SPACE(c) ((c) <= 32) -#define PJ_SCAN_CHECK_EOF(s) (*s) +#define PJ_SCAN_CHECK_EOF(s) (s != scanner->end) #if defined(PJ_SCANNER_USE_BITWISE) && PJ_SCANNER_USE_BITWISE != 0 @@ -375,7 +375,7 @@ PJ_DEF(void) pj_scan_get_quotes(pj_scanner *scanner, */ do { /* loop until end_quote is found. */ - while (*s && *s != '\n' && *s != end_quote[qpair]) { + while (PJ_SCAN_CHECK_EOF(s) && *s != '\n' && *s != end_quote[qpair]) { ++s; } |