lowercase JS parser output

git-svn: trunk@4057
remotes/push_mirror/0.95
Török Edvin 17 years ago
parent 2e64bd9fc5
commit 6ba8b9503c
  1. 22
      libclamav/jsparse/js-norm.c
  2. 2
      unit_tests/check_jsnorm.c

@ -328,16 +328,20 @@ static inline int buf_outc(char c, struct buf *buf)
static inline int buf_outs(const char *s, struct buf *buf)
{
const size_t buf_len = sizeof(buf->buf);
size_t len = strlen(s);
while(buf->pos + len > buf_len) {
memcpy(buf->buf + buf->pos, s, buf_len - buf->pos);
len -= (buf_len - buf->pos);
if(write(buf->outfd, buf->buf, buf_len) < 0)
return CL_EIO;
buf->pos = 0;
size_t i;
i = buf->pos;
while(*s) {
while(i < buf_len && *s) {
buf->buf[i++] = tolower((unsigned char)(*s++));
}
if(i == buf_len) {
if(write(buf->outfd, buf->buf, buf_len) < 0)
return CL_EIO;
i = 0;
}
}
memcpy(buf->buf + buf->pos, s, len);
buf->pos += len;
buf->pos = i;
return CL_SUCCESS;
}

@ -332,7 +332,7 @@ static const char jstest_buf4[] =
"document.write(unescape('%3C%73%63%72%69%70%74%20%6C%61%6E%67%75%61%67%65%3D%22%6A%61%76%61%73%63%72%69%70%74%22%3E%66%75%6E%63%74%69%6F%6E%20%64%46%28%73%29%7B%76%61%72%20%73%31%3D%75%6E%65%73%63%61%70%65%28%73%2E%73%75%62%73%74%72%28%30%2C%73%2E%6C%65%6E%67%74%68%2D%31%29%29%3B%20%76%61%72%20%74%3D%27%27%3B%66%6F%72%28%69%3D%30%3B%69%3C%73%31%2E%6C%65%6E%67%74%68%3B%69%2B%2B%29%74%2B%3D%53%74%72%69%6E%67%2E%66%72%6F%6D%43%68%61%72%43%6F%64%65%28%73%31%2E%63%68%61%72%43%6F%64%65%41%74%28%69%29%2D%73%2E%73%75%62%73%74%72%28%73%2E%6C%65%6E%67%74%68%2D%31%2C%31%29%29%3B%64%6F%63%75%6D%65%6E%74%2E%77%72%69%74%65%28%75%6E%65%73%63%61%70%65%28%74%29%29%3B%7D%3C%2F%73%63%72%69%70%74%3E'));eval(dF('gI%285%3B%285%3Afqjwy%28585%3A7%28586D%28585%3A7%3C%7C55y%28585%3A7%3C%28585%3A7%28586E%28585%3A8G5%285%3A%285%3C%286E3'));";
static const char jstest_expected4[] =
"document.write(\"<script language=\"javascript\">function dF(s){var s1=unescape(s.substr(0,s.length-1)); var t='';for(i=0;i<s1.length;i++)t+=String.fromCharCode(s1.charCodeAt(i)-s.substr(s.length-1,1));document.write(unescape(t));}</script>\");eval();alert(\"w00t\");";
"document.write(\"<script language=\"javascript\">function df(s){var s1=unescape(s.substr(0,s.length-1)); var t='';for(i=0;i<s1.length;i++)t+=string.fromcharcode(s1.charcodeat(i)-s.substr(s.length-1,1));document.write(unescape(t));}</script>\");eval();alert(\"w00t\");";
static const char jstest_buf5[] =
"function (p,a,c,k,e,r){}('0(\\'1\\');',2,2,'alert|w00t'.split('|'),0,{});";

Loading…
Cancel
Save