정규식 버퍼 오버플로우 문제
글쓴이: only2sea / 작성시간: 월, 2007/04/23 - 10:03오후
정규식에 대해서 공부하다가 생긴 의문입니다. Quoted String을 정규식으로 받아들이는 방법에 대한 내용을 보면
먼저 간단한 방법으로 다음과 같은 것을 생각할 수 있습니다.
\".*\"
그런데 이것은 한 라인에 두개 이상이 있을 때에는 받아들이지 못하는 문제점이 있습니다.
그래서 다음과 같은 방법을 이용할 수 있습니다.
\"[^\"]*\"
그런데 이번에는 버퍼 오버플로우의 문제가 발생할 수 있다고 하네요. 제가 읽은 자료에는 여기까지만 나와 있습니다. "이 문제 해결법은 알아서 생각해 보세요~" 이런 식입니다.
그래서 생각해보니 이것은 따옴표만 열고 닫지 않았을 때 파일의 끝까지 읽을 수가 있겠더라구요. 그래서 다음과 같이 고쳤습니다.
\"[^\"\n]*\"
그런데 여전히 한 라인이 많이 길어지면 버퍼 오버플로우가 발생할 수 있을 것 같은데요... 여기까지인 것일까요.. 아니면 뭔가 이상한 방법이 있는 것일까요?
\"[^\"\n]{0, 1000}\"
그래서 생각해 낸 방법이 위와 같은 방법인데, 이렇게 되면 state가 1000개 이상 되어서 별로 좋지 않을 것 같습니다.
보통 quoted string 처리할 때 어떻게 하시나요?
Forums:
파일 읽을 때 파일
파일 읽을 때 파일 크다고 버퍼 오버플로 걱정하지 않듯 길이가 얼마인지 모르는 것은 여러번에 나눠서 읽으세요
[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin
댓글 달기