디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

glibc에 realloc 버그라도 있음? 설마? -.,-;

애슬론(121.168) 2009.11.03 20:53:09
조회 2117 추천 0 댓글 6




일련의 크기를 알 수 없는 문자열을 입력받아 저장할 일이 있ㅇ서
이중 포인터 써서 realloc으로 크기를 늘려나가고 있는데




[sys1782@localhost pl2]$ ./test5 < source.pas
<program> :="" program="">
<SAMPLE1> : IDENT (nil)

### (nil) ###
<CONST> : CONST
<TEN> : IDENT 0x87e7058

### 0x87e7058 ###
<=> : EQUAL
<10> : DIGIT
<;> : SEMICOLON
<SEVEN> : IDENT 0x87e7058

### 0x87e7058 ###
<=> : EQUAL
<7> : DIGIT
<;> : SEMICOLON
<VAR> : VAR
<SUM> : IDENT 0x87e7058

### 0x87e7058 ###
<,> : COMMA
<DIFF> : IDENT 0x87e7058

### 0x87e7058 ###
*** glibc detected *** ./test5: realloc(): invalid next size: 0x087e7058 ***
======= Backtrace: =========
/lib/libc.so.6[0x877394]
/lib/libc.so.6[0x87af41]
/lib/libc.so.6(realloc+0x106)[0x87bc76]
./test5[0x804a12c]
./test5[0x8048a8b]
./test5[0x804a0db]
/lib/libc.so.6(__libc_start_main+0xe5)[0x81e6d5]
./test5[0x80486b1]
======= Memory map: ========
001b9000-001c6000 r-xp 00000000 08:05 1901848    /lib/libgcc_s-4.3.2-20081105.so.1
001c6000-001c7000 rw-p 0000c000 08:05 1901848    /lib/libgcc_s-4.3.2-20081105.so.1
007e3000-00803000 r-xp 00000000 08:05 1901832    /lib/ld-2.9.so
00804000-00805000 r--p 00020000 08:05 1901832    /lib/ld-2.9.so
00805000-00806000 rw-p 00021000 08:05 1901832    /lib/ld-2.9.so
00808000-00976000 r-xp 00000000 08:05 1901833    /lib/libc-2.9.so
00976000-00978000 r--p 0016e000 08:05 1901833    /lib/libc-2.9.so
00978000-00979000 rw-p 00170000 08:05 1901833    /lib/libc-2.9.so
00979000-0097c000 rw-p 00979000 00:00 0
08048000-0804b000 r-xp 00000000 08:02 32806      /home/sys11782/pl2/test5
0804b000-0804c000 rw-p 00002000 08:02 32806      /home/sys11782/pl2/test5
087e3000-08804000 rw-p 087e3000 00:00 0          [heap]
b7e00000-b7e21000 rw-p b7e00000 00:00 0
b7e21000-b7f00000 ---p b7e21000 00:00 0
b8003000-b8005000 rw-p b8003000 00:00 0
b801f000-b8021000 rw-p b801f000 00:00 0
b8021000-b8022000 r-xp b8021000 00:00 0          [vdso]
bfa0d000-bfa22000 rw-p bffeb000 00:00 0          [stack]
중지됨



아 형들아 이거 왜 이런걸까 포인터값도 체크하면서 하는데 꼭 저 부분에서 터져버리네
뭐지 T_T
참고로 동적으로 할당 안 하고 그냥 처음부터 넉넉하게 잡아주면 그냥 잘 돌아가..
함수 호출할 때마다 realloc으로 재할당 해주고 있는데 이게 그렇게나 문제인가으...</program>>

추가) 코드는 이래 근데 이거 c가 아니라 lex여서..


%{
#include <stdio.h>
enum TOKENS {
TIDENT,
TUNIT,
TPROGRAM,
TCONST,
TVAR,
TINTEGER,
TBEGIN,
TEND,
TPLUS,
TMINUS,
TCOMMA,
TCOLON,
TASSIGN,
TSEMICOLON,
TEQUAL,
TDOT,
TEOF,
};
int IDENT_no = -1;
char **name_table;
void temp();
%}
LETTER  [a-zA-Z_]
DIGIT   [0-9]
%%
PROGRAM printf("<PROGRAM> : PROGRAM\\n");
CONST printf("<CONST> : CONST\\n");
VAR printf("<VAR> : VAR\\n");
INTEGER printf("<INTEGER> : INTEGER\\n");
BEGIN printf("<BEGIN> : BEGIN\\n");
END printf("<END> : END\\n");
\\+ printf("<+> : PLUS\\n");
\\- printf("<-> : MINUS\\n");
\\, printf("<,> : COMMA\\n");
\\: printf("<:> : COLON\\n");
":=" printf("<:=> : ASSIGN\\n");
\\; printf("<;> : SEMICOLON\\n");
\\= printf("<=> : EQUAL\\n");
\\. printf("<.> : DOT\\n");
[\\11] printf("EOF");
{LETTER}({LETTER}|{DIGIT})* printf("<%s> : IDENT %p\\n",yytext,name_table); temp();
{DIGIT}+ printf("<%s> : DIGIT\\n",yytext);
[ \\t\\n]+ ;
. printf("Unrecognized Character\\n");
%%
int main()
{
        name_table=0;
        yylex();
        return 1;
}
void temp()
{
        IDENT_no++;
        printf("\\n ### %p ###\\n",name_table);
        name_table=(char **)realloc(name_table,IDENT_no*sizeof(char *));
        name_table[IDENT_no]=(char *)malloc(sizeof(char));
        //name_table[IDENT_no]=yytext;
        //printf("- %d, %s -\\n",yyleng,name_table[IDENT_no]);
}
int yywrap()
{
        printf("- END -\\n");
        printf("THE NUMBERS OF IDENT : %d\\n",IDENT_no+1);
        return 1;
}

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 끝까지 다 본 걸 후회하게 만든 용두사미 드라마는? 운영자 25/07/07 - -
281434 형들 음수를 2진법으로 표현하는 간단한 방법이 있나? [6] 회색사과갤로그로 이동합니다. 11.10.17 184 0
281431 이문제 풀어볼 횽있나? [4] 마타버터갤로그로 이동합니다. 11.10.16 73 0
281430 토페횽 참고하삼 [4] AS3.0갤로그로 이동합니다. 11.10.16 47 0
281429 플레쉬 그래픽 종결 [11] Stan(110.174) 11.10.16 153 0
281428 프갤 성님들 대학시절 과제 달라고 하면 어떻게함? [2] 메리프갤로그로 이동합니다. 11.10.16 51 0
281427 실사 그래픽 VS 카툰렌더링 [1] 1(125.135) 11.10.16 105 0
281425 Nvidia 에서 나온 GPU gems 책 보면 테크닉 나옴 [5] [성대아싸]갤로그로 이동합니다. 11.10.16 111 0
281424 아 누가 날 괴롭히고 있어 y녀6디리(220.118) 11.10.16 41 0
281423 4비트 패리티를 구현하는 ROM의 내용중 올바른것 [5] 눈팅유저(221.144) 11.10.16 61 0
281422 정보처리기사 질문옇ㅎㅎㅎㅎ [2] 즐쿰갤로그로 이동합니다. 11.10.16 67 0
281421 html5로 모던워페어3 만들수있음? 정답은 -> 없죠 입니다. 하지만 [1] Stan(110.174) 11.10.16 89 0
281420 플래시 GPU 가속 하면 셰이더 가지고 놀수 있음?? [7] [성대아싸]갤로그로 이동합니다. 11.10.16 89 0
281419 연봉은 동결인데 다오른당.. ㅠㅠ [5] 테스터(61.33) 11.10.16 101 0
281417 회사는 학벌을 볼지 몰라도 개발자끼리는 순수하게 [4] 전간디갤로그로 이동합니다. 11.10.16 133 0
281415 프리로 일하는 형은 읎나여 [10] 토페갤로그로 이동합니다. 11.10.16 110 0
281413 와 html5 질질 싸겠다 진짜 ㄷㄷ [13] ㅁㄴㅇㄹ(115.137) 11.10.16 155 0
281412 근데 비인기 직업이라서 몸값 올라가는건 좀 씁쓸한거 같아;; [1] 꼬꼬월드갤로그로 이동합니다. 11.10.16 78 0
281410 정보처리기사 아무나 못따는건 맞아 장벽 종내 높음 [2] 꼬꼬월드갤로그로 이동합니다. 11.10.16 129 0
281409 정말 프로그래밍 배워보고싶다. 횽들 조언좀해줘 [16] 프리웨어갤로그로 이동합니다. 11.10.16 154 0
281408 나같이 학벌 구린 개발자는 걍 월급만 안떼어먹으면 됨.. [5] 꼬꼬월드갤로그로 이동합니다. 11.10.16 164 0
281402 도움좀 ㅠㅠ [2] 급한데요..(125.141) 11.10.16 39 0
281401 HTML5 와 Flash.. 이런관계가 됬으면 좋겠다.jpg [2] Stan(110.174) 11.10.16 97 0
281400 실행시간을 Big-O로 표현하는것 질문좀 할게요. [4] 하양(61.73) 11.10.16 70 0
281399 형아!!!!! [4] 소덕(203.232) 11.10.16 40 0
281398 언리얼 엔진 공부좀 하려는데 책 추천좀 해주셈 [5] 1(125.135) 11.10.16 96 0
281397 도대체 학원은 어떻게 가르치키길래 [3] 돌아이바갤로그로 이동합니다. 11.10.16 143 0
281395 좋은 회사 들어가려면 프로그래머 학벌 중요하다. [5] ㅇㅇ(121.133) 11.10.16 167 0
281394 어시발 전구가 나갓다 뻘찔죶중딩갤로그로 이동합니다. 11.10.16 32 0
281393 윈8 호환성 안좋지않아요? 뻘찔죶중딩갤로그로 이동합니다. 11.10.16 26 0
281392 수습 기간 급여물어본 애 이걸 꼭 보길 바란다 나머지 애들도 좀 두고두고 봐라 [2] 돌아이바갤로그로 이동합니다. 11.10.16 134 0
281391 잌 두분토론 끝났네 Dawnwalkre갤로그로 이동합니다. 11.10.16 31 0
281389 오늘은 2시간 먼저 뻘좆입개르요 [1] 뻘찔죶중딩갤로그로 이동합니다. 11.10.16 44 0
281388 이런게임 이름이 뭐냐 [4] AS3.0갤로그로 이동합니다. 11.10.16 111 0
281387 그래도 프로그래머쪽이 학벌은 크게 안따지지 않냐? [5] ㅇㅇ(61.33) 11.10.16 127 0
281384 while문의 활용은 무궁무진 한것 같다 [1] 1(125.135) 11.10.16 65 0
281383 모노리스형 형네 병특 형이 직접 뽑아? [7] ^0^갤로그로 이동합니다. 11.10.16 91 0
281382 웹 개발할땐 크롬 파폭 IE 다 테스트하긴 하는데 결국은 [3] 꼬꼬월드갤로그로 이동합니다. 11.10.16 65 0
281380 1학년인데 C언어 진짜 간단한건데 찾다찾다가 질문드려요 [3] 영광의비석갤로그로 이동합니다. 11.10.16 72 0
281378 니들은 ㅄㅄ해. [3] 쵸쵸(219.251) 11.10.16 52 0
281374 자신의 능력을 발휘하기 위해서는 자신에게 맞는 곳을 찾아야 한다. 바보플머(121.190) 11.10.16 73 0
281372 한국의 웹표준 수준은? [5] 닥터박하박(180.66) 11.10.16 126 0
281371 아 시바 게임 다만듬 더하기게임임 하루걸렸다.swf [11] Stan(110.174) 11.10.16 197 0
281370 형들 어셈블리어좀 물어볼께 간단한거임 [5] 컴구뉴비(125.176) 11.10.16 94 0
281369 형들 api 복붙 질문좀.. [2] ,..,(183.100) 11.10.16 97 0
281366 형들 엑셀 혹시 잘 하는 형들 있나?? 좀 알려줘요오오오 [6] 엑셀알려줘요(1.241) 11.10.16 70 0
281365 c++ 질문좀 [5] 넥병호갤로그로 이동합니다. 11.10.16 97 0
281364 DB배우는데... [5] 타마마이등병(183.97) 11.10.16 102 0
281363 디씨어플 왜 로그인이 안됨?ㅋ 알오티씨플머갤로그로 이동합니다. 11.10.16 34 0
281362 이번학기 최고의 난관 3과목 [2] elwlwlwk갤로그로 이동합니다. 11.10.16 117 0
281361 monoless횽아... [5] 소덕(203.232) 11.10.16 75 0
뉴스 “이건 첫번째 레슨”…역주행 중인 유노윤호, 근황 공개에 ‘깜짝’ 디시트렌드 07.07
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2