亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? scanner.c

?? 源碼漏洞檢查
?? C
字號(hào):
/* scanner.C * John Viega * * Jan 28-29 2000 */#include "config.H"#include "scanner.H"#include "fatal.H"void Scanner::ProcessIgnores(){  TokenContainer *cc = lexer->GetComments();  int             i  = 0;  // assert forall i[0:cc.size]: cc->GetToken(i)->GetTokenType() == COMMENT    while(1)    {      CommentTok *tok = (CommentTok *)(cc->GetToken(i++));      if(!tok) break;      char *str = tok->GetValue();      Lex  *l   = new Lex(str, strlen(str), lexer->GetSourceIdentifier(),      			  tok->GetLineNo(), 1, 1);      if(!l)      	OutOfMemory();      TokenContainer *tc = l->GetTokens();      CheckOneContainer(tc, tok);      delete l;    }}void Scanner::CheckOneContainer(TokenContainer *tc, CommentTok *comment_tok){  Token   *t = tc->GetToken(0);  if(!t) return;  TokenId id = t->GetTokenType();  if(id != IDENTIFIER)    return;  if(strcasecmp(((IdTok *)t)->GetName(), "ITS4"))  // If value != ITS4    return;  t = tc->GetToken(1);  if(!t) return;  id = t->GetTokenType();  if(id != OPERATOR)    return;  if(strcmp(((OperatorTok *)t)->GetOperatorName(), ":"))    return;  FigureOutCommand(tc, comment_tok);}void Scanner::CalculateEffectiveLineNumber(CommentTok *comment_tok, int &l1, int &l2){  int start_line = comment_tok->GetLineNo();  int end_line   = comment_tok->GetEndLineNo();  int tok_ix     = comment_tok->GetTokenIndex();  int start_yes  = 0;  int end_yes    = 0;    // Note:  This should ignore both lines:  /* Non-commented-stuff */ /*                              * ITS4: IGNORE                             */             /*Non-commented-stuff*/  TokenContainer *tc = lexer->GetTokens();  Token *t;  int   i = 0;  do { t = tc->GetToken(tok_ix-(++i)); } while(t && (t->GetTokenType() == COMMENT) &&					       t->GetLineNo() == start_line);  if(t)    {      if((t->GetLineNo() == start_line) && (t->GetTokenType() != COMMENT))	{	  start_yes = 1;	}    }  i = 0;  if(!start_yes)    {      do { t = tc->GetToken(tok_ix+(++i)); }       while(t && (t->GetTokenType() == COMMENT) && t->GetLineNo() == end_line);      if(t)	{	  if((t->GetLineNo() == end_line) && (t->GetTokenType() != COMMENT))	    {	      end_yes = 1;	    }	}    }  if(start_yes || end_yes)    {       l1 = start_line;      l2 = end_line;    }  else     {      l1 = l2 = end_line+1;    }}void Scanner::FigureOutCommand(TokenContainer *tc, CommentTok *comment_tok){  int i,x;  LineIgnoreList *ilist = 0;  Token *t = tc->GetToken(2);  if(!t || (t->GetTokenType() != IDENTIFIER))    {      goto invalid;    }  if(strcasecmp(((IdTok *)t)->GetName(), "IGNORE"))    {      goto invalid;    }  int l1, l2;  CalculateEffectiveLineNumber(comment_tok, l1, l2);  ilist = new LineIgnoreList(l1, l2, comment_tok->GetTokenIndex());  if(!ilist)    OutOfMemory();  i = 3;  x = 0;  while(1)    {      t = tc->GetToken(i++);      if(!t)      {	AddToBigIgnoreList(ilist);	return;      }      char *str;      char *cpy;      switch(t->GetTokenType())	{	case IDENTIFIER:	  if(!ilist->ignore)	    {	      char **arr = new char* [tc->GetCurrentSize()];	      if(!arr)		OutOfMemory();	      ilist->ignore = arr;	    }	  str = ((IdTok *)t)->GetName();	  cpy = new char[strlen(str)+1];	  if(!cpy)	    OutOfMemory();	  strcpy(cpy, str); /* its4: ignore strcpy */	  ilist->ignore[x++] = cpy;	  ilist->ignore[x] = 0;	  continue;	case OPERATOR:	  if(!strcmp(((OperatorTok *)t)->GetOperatorName(), ","))	    continue;	  /* fallthrough */	default:	  goto invalid;	}    }   invalid:  delete ilist;  fprintf(stderr, "%s:%d: WARNING: Invalid ITS4 command." NEWLINE,	  lexer->GetSourceIdentifier(),  t->GetLineNo());  return;}void Scanner::RunScan(){  ProcessIgnores();  TokenContainer *tc = lexer->GetTokens();  Token *tok;  IdTok *itok;  int i = 0;  int ignore_stream = 0;  while(1)    {      tok = tc->GetToken(i++);      if(!tok) break;      TokenId id = tok->GetTokenType();      char    *name;      switch(id)	{	case IDENTIFIER:	  if(ignore_stream) continue;	  itok = (IdTok *)tok;	  name = itok->GetName();	  if(!Paranoid())	    {	      tok = tc->GetToken(i);	      if(tok && ((tok->GetTokenType() != OPERATOR) ||		 strcmp(((OperatorTok *)tok)->GetOperatorName(), "(")))		{		  continue;		}	    }	  CheckName(name, tc, i, itok->GetLineNo(), itok->GetEndLineNo());	  continue;	case PREPROC_START:	  tok = tc->GetToken(i++);	  if(tok && (tok->GetTokenType() != STRING))	    {	      if(strcmp(((StringTok *)tok)->GetContents(), "define"))		{		  ignore_stream = 1;		}	    }	  continue;	case PREPROC_END:	  ignore_stream = 0;	  continue;	default:	  continue;	}    }}void Scanner::CheckName(char *name, TokenContainer *tc, int i, int startline, int endline){  // First look and see if we should be ignoring this due to an ITS4: command.  if(IgnoreItOrNo(name, startline, endline, i-1))    {      return;    }  VulnInfo *v = GetVulnInfo(name);  if(!v) return;  if(GetInputScanning() && !v->input) return;  if(!GetUseHandlers())    {      DefaultHandler(v, tc, i, lexer->GetSourceIdentifier());      return;    }  switch(v->handler)    {    case 0:      DefaultHandler(v, tc, i, lexer->GetSourceIdentifier());      break;    case 1:      StrcpyHandler(v, tc, i, lexer->GetSourceIdentifier());      break;    case 2:      SprintfHandler(v, tc, i, lexer->GetSourceIdentifier());      break;    case 3:      SnprintfHandler(v, tc, i, lexer->GetSourceIdentifier());      break;    case 4:      ScanfHandler(v, tc, i, lexer->GetSourceIdentifier());      break;    case 5:      SscanfHandler(v, tc, i, lexer->GetSourceIdentifier());      break;    case 6:      TOCTOU_A_Handler(v, tc, i, lexer->GetSourceIdentifier());      break;    case 7:      TOCTOU_B_Handler(v, tc, i, lexer->GetSourceIdentifier());      break;    case 8:      TOCTOU_C_Handler(v, tc, i, lexer->GetSourceIdentifier());      break;    case 9:      FprintfHandler(v, tc, i, lexer->GetSourceIdentifier());      break;    case 10:      PrintfHandler(v, tc, i, lexer->GetSourceIdentifier());      break;    case 11:      SyslogHandler(v, tc, i, lexer->GetSourceIdentifier());      break;    default:      fprintf(stderr, "Undefined handler: %d\nUsing default.", v->handler);      DefaultHandler(v, tc, i, lexer->GetSourceIdentifier());      break;    }}int Scanner::IgnoreItOrNo(char *id, int start_line, int end_line, int token_index){  if(IgnoreIts4Commands()) return 0;  LineIgnoreList *cur = ignore_ptr ? *ignore_ptr : 0;  if(!cur) return 0;  while(start_line > cur->line_end)    {      if(!cur->next)	return 0; /* Don't ignore it. */      ignore_ptr = &(cur->next);      cur        = *ignore_ptr;    } try_again:  // If the next ignore item is still to come, return 0 (don't ignore).  if(end_line < cur->line_start) return 0;  if(cur->scope_ends_at_token)    {      if(cur->token_number < token_index)	{	  ignore_ptr = &(cur->next);	  cur =        *ignore_ptr;	  goto try_again;	}    }  if(cur->scope_starts_at_token)    {      if(cur->token_number > token_index)	return 0;    }  if(!(cur->ignore))    return 1; // Ignore everything on this line.    int i = 0;  char *s;  while(1)    {      s = cur->ignore[i++];      if(!s) return 0;      if(!strcmp(s,id)) return 1;    }  /* NOTREACHED */}void Scanner::AddToBigIgnoreList(LineIgnoreList *p){  if(!ignore_data_start)    {      ignore_data_end = ignore_data_start = p;      return;    }  if(ignore_data_end->line_end == p->line_start)    {      if(!ignore_data_end->ignore && !p->ignore)	{	  // Extend scope, but add no new information.	  ignore_data_end->line_end = p->line_end;	  delete p;	  return;	}      else	{	  ignore_data_end->scope_ends_at_token = 1;	  p->scope_starts_at_token             = 1;	}    }  ignore_data_end->next = p;  ignore_data_end = p;}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美色视频在线观看| 久久精品夜夜夜夜久久| 日本vs亚洲vs韩国一区三区二区| 欧美狂野另类xxxxoooo| 免费在线视频一区| 久久国产精品99精品国产| 日韩午夜av一区| 国产福利91精品一区二区三区| 国产精品久99| 国产精品麻豆久久久| 亚洲mv大片欧洲mv大片精品| 91精品国产高清一区二区三区蜜臀 | 一区二区国产视频| 欧美精品一卡二卡| 激情五月婷婷综合| 欧美国产成人精品| 欧美日韩色综合| 激情综合网av| 综合中文字幕亚洲| 欧美乱妇23p| 九色综合国产一区二区三区| 国产精品二区一区二区aⅴ污介绍| 欧美专区在线观看一区| 麻豆91免费看| 成人免费在线视频观看| 欧美日韩国产在线观看| 国产一区高清在线| 亚洲摸摸操操av| 日韩午夜激情免费电影| k8久久久一区二区三区| 天堂资源在线中文精品| 国产日产欧美一区二区视频| 亚洲视频狠狠干| 88在线观看91蜜桃国自产| 精品亚洲国内自在自线福利| 国产精品久久久久久久岛一牛影视| 欧美三级三级三级爽爽爽| 国产一区二区三区免费看 | 欧美无人高清视频在线观看| 久久av老司机精品网站导航| 中文字幕制服丝袜成人av| 欧美一区二区三区系列电影| 成人毛片老司机大片| 日韩激情av在线| 中文字幕视频一区二区三区久| 欧美一区二区三区四区久久| 不卡的电影网站| 久久成人免费日本黄色| 亚洲免费视频中文字幕| 精品福利av导航| 欧美性xxxxx极品少妇| 国产精品18久久久久久久久 | 一本色道综合亚洲| 国产真实乱偷精品视频免| 亚洲国产欧美在线| 国产精品久久三区| 欧美大片拔萝卜| 欧美性大战久久久久久久蜜臀 | 国产视频一区在线观看| 欧美日韩中文字幕一区二区| 国产成人av电影免费在线观看| 三级不卡在线观看| 亚洲色图制服丝袜| 久久久久久久免费视频了| 69堂成人精品免费视频| 91香蕉视频黄| 国内一区二区视频| 日本亚洲免费观看| 1区2区3区国产精品| 久久亚洲精品小早川怜子| 337p亚洲精品色噜噜| 91蝌蚪porny| 丁香天五香天堂综合| 九九热在线视频观看这里只有精品| 亚洲成人免费在线观看| 亚洲人成在线观看一区二区| 欧美激情一区二区三区全黄| 欧美一区二区在线视频| 在线观看视频欧美| 99这里只有久久精品视频| 国产精品538一区二区在线| 精品一区二区三区视频| 日本亚洲三级在线| 天堂在线一区二区| 午夜久久久久久久久久一区二区| 玉足女爽爽91| 亚洲免费观看在线视频| 国产精品初高中害羞小美女文| 国产亚洲午夜高清国产拍精品| 日韩国产欧美在线视频| 亚洲欧美精品午睡沙发| 中文字幕一区av| 国产精品伦一区二区三级视频| 久久久久九九视频| ww亚洲ww在线观看国产| 精品免费99久久| 欧美成人高清电影在线| 欧美成人一区二区| 欧美xxxxxxxxx| 精品欧美一区二区久久| 精品国免费一区二区三区| 欧美大片一区二区| 26uuu色噜噜精品一区二区| 日韩色视频在线观看| 欧美人妖巨大在线| 91精品国产综合久久久久久久久久| 欧美天堂亚洲电影院在线播放| 欧洲亚洲国产日韩| 欧美三级视频在线| 91精品国产综合久久久久久久 | 午夜精品久久久久久久久久 | 欧美一区三区二区| 欧美一级生活片| 欧美一级二级在线观看| 日韩午夜三级在线| 久久婷婷国产综合精品青草 | 欧美在线制服丝袜| 欧美性猛交xxxx乱大交退制版| 欧美人成免费网站| 欧美一区二区三区的| 日韩一区二区三区高清免费看看| 日韩欧美国产三级| 久久九九99视频| 国产精品素人一区二区| 亚洲日本va午夜在线影院| 一区二区三区中文字幕| 天天色天天爱天天射综合| 老司机一区二区| 国产激情精品久久久第一区二区 | 欧美亚洲一区二区三区四区| 欧美日韩黄色一区二区| 日韩欧美一区二区不卡| 久久久综合精品| 中文字幕在线观看一区二区| 亚洲精品视频一区| 日日骚欧美日韩| 国产一区二三区| www.在线欧美| 欧美日韩成人一区二区| 精品久久久久久综合日本欧美| 国产欧美日韩精品在线| 亚洲美女屁股眼交3| 日韩精品久久久久久| 激情文学综合网| av一本久道久久综合久久鬼色| 亚洲欧美日韩国产成人精品影院| 亚洲在线视频免费观看| 美腿丝袜一区二区三区| 懂色一区二区三区免费观看| 欧美专区在线观看一区| 精品国产a毛片| 亚洲男人的天堂在线aⅴ视频| 天天做天天摸天天爽国产一区| 韩国av一区二区三区| 日本乱人伦aⅴ精品| 日韩欧美一级二级三级久久久 | 国产欧美日韩卡一| 亚洲成人手机在线| 国产伦精品一区二区三区视频青涩| 97精品电影院| 日韩免费看的电影| 国产精品毛片久久久久久| 日韩不卡免费视频| 成人一区二区三区视频| 在线观看一区日韩| 久久久综合视频| 亚洲va欧美va国产va天堂影院| 国产精品一区在线观看乱码| 欧美亚洲综合色| 国产欧美日韩在线看| 天使萌一区二区三区免费观看| 国产不卡视频在线播放| 欧美精品xxxxbbbb| 国产精品成人免费在线| 天天做天天摸天天爽国产一区| 波多野结衣亚洲| 日韩欧美中文字幕制服| 亚洲另类春色国产| 国产自产高清不卡| 精品视频一区三区九区| 国产午夜精品久久久久久免费视| 亚洲国产成人av| 成人av一区二区三区| 丝袜亚洲另类欧美综合| 国产成人无遮挡在线视频| 91精品国产综合久久精品图片| 国产亚洲成aⅴ人片在线观看| 日日夜夜精品视频免费| 99精品热视频| 久久九九99视频| 毛片av一区二区| 欧美唯美清纯偷拍| 亚洲色欲色欲www| 粉嫩一区二区三区性色av| 日韩视频在线一区二区| 亚洲自拍偷拍麻豆| 99久久99久久综合| 久久精品欧美一区二区三区不卡 | 国产精品一色哟哟哟| 69堂精品视频|