디시인사이드 갤러리

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

갤러리 본문 영역

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

애슬론(121.168) 2009.11.03 20:53:09
조회 2120 추천 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 - -
AD 디지털 액세서리 기간한정 세일! 운영자 25/07/11 - -
282642 오늘 프겔 흥하네 [2] 116.44(110.11) 11.10.20 87 0
282641 프로세스의 PC(program counter) 와 쓰레드 PC 질문좀.. [4] 잉..(203.253) 11.10.20 74 0
282640 횽들 리눅스있잖아 [7] DNB갤로그로 이동합니다. 11.10.20 84 0
282638 ㅋㅋㅋㅋㅋㅋㅋ6시간동안 쓴 레포트가 사라졌읍니다 ㅋㅋㅋㅋㅋㅋㅋ [7] healslave갤로그로 이동합니다. 11.10.20 87 0
282637 횽들 진로 상담좀. 해줘 [21] 1234(110.11) 11.10.20 192 0
282636 웹프로그래밍 쫌 하는사람 !! [20] 김발등(175.125) 11.10.20 204 0
282635 오늘은 월급날 그리고 내일만 지나면 황금주말. [5] 116.44(110.11) 11.10.20 81 0
282634 오늘 willy라는 애플 매장을 갔는데 [3] 분당살람갤로그로 이동합니다. 11.10.20 72 0
282633 횽들 분할 컴파일 할 떄 [23] 로하로하알로하갤로그로 이동합니다. 11.10.20 153 0
282632 전간디님이 퇴근길에 올랐습니다 전간디갤로그로 이동합니다. 11.10.20 36 0
282631 비주얼스튜디오C++ 2011년도버전은 구할수없나요? [5] ㅇㅇㅇㅇ(119.207) 11.10.20 81 0
282630 에이젝스하라. 에이젝스하라. [1] 쵸쵸(219.251) 11.10.20 62 0
282628 [6] Re-FEEL갤로그로 이동합니다. 11.10.20 49 0
282627 밑에 C 소수점 찾기 보니까 공대생 플머와 걍 플머의 차이점이 보인다. [4] 로하로하알로하갤로그로 이동합니다. 11.10.20 115 0
282626 이시간대에는 조용할려나.. 현역 프로그래머로 일하고 있는 사람있어?? [38] ㅁㄴㅇㅁㄴㅇ(182.208) 11.10.20 175 0
282625 페도라 15에서 libtcl8.4.so 쓰려면 [2] 분당살람갤로그로 이동합니다. 11.10.20 42 0
282624 C언어 고수 프로그래머 형님들 도와주세요 ㅠㅠ [7] 선고갤로그로 이동합니다. 11.10.20 128 0
282623 횽들 삼차원배열 포인터 관련 질문 좀;; [4] 모험원자갤로그로 이동합니다. 11.10.20 62 0
282622 혹시 서버 프로그래머횽 있나여? [8] ,.,.(183.100) 11.10.20 141 0
282621 아랫 글 질문에대한 해답과 그 예제 [2] 질문쟁이(203.255) 11.10.20 56 0
282620 커뮤니티 사이트 구축 어렵나요? [1] ㅁㄴㅇ(121.164) 11.10.20 82 0
282619 와 진짜 C++ 플밍하는데 존나 두근거림 [4] 로하로하알로하갤로그로 이동합니다. 11.10.20 111 0
282617 아...페도라...현재 상황...T.T 분당살람갤로그로 이동합니다. 11.10.20 62 0
282616 구글 문서도구 오랬만에 들어갔는데 인터페이스가 깔끔해짐 [성대아싸]갤로그로 이동합니다. 11.10.20 49 0
282615 프로그래밍 갤러리에서 프로그램 하나 물어봐도 되는지.. [3] 바크갤로그로 이동합니다. 11.10.20 77 0
282614 성님들 좀 봐달랑께 [6] 늅늅이(165.246) 11.10.20 73 0
282613 반복적으로 여러번 Dynamic allocation을 하는 방법에 관하여 [5] 질문쟁이(203.255) 11.10.20 56 0
282612 csh 문제 해결! 분당살람갤로그로 이동합니다. 11.10.20 67 0
282611 헬로 월드 문신 하고 싶다 [6] 1(125.135) 11.10.20 91 0
282610 정보올림피아드 이건산전갤로그로 이동합니다. 11.10.20 53 0
282608 페도라 문제 스샷!! [1] 분당살람갤로그로 이동합니다. 11.10.20 62 0
282607 야구 마지막에 재밌게 해주네 ㄷㄷ [2] 꼬꼬월드갤로그로 이동합니다. 11.10.20 74 0
282605 win api 교재 추천좀 해주세요... [3] ㅁㄴㅇㄹ(182.213) 11.10.20 86 0
282604 페도라 또 질문! [5] 분당살람갤로그로 이동합니다. 11.10.20 45 0
282602 언녕 나 왓어 로하로하알로하갤로그로 이동합니다. 11.10.20 30 0
282601 우하하는 봐라 ㄴㄴㅇ(116.36) 11.10.20 26 0
282600 횽들 나 열혈강의 자바프로그래밍 샀는데 ..궁금한게 이썽! [3] 아자(211.237) 11.10.20 121 0
282599 페도라 다시 질문! 분당살람갤로그로 이동합니다. 11.10.20 23 0
282598 형님들 낼 컴퓨터프로그래밍 시험인데 C++이없어서 공부를못하겟으요.. [3] ㅇㅇㅇ(119.207) 11.10.20 56 0
282596 API 질문좀여! API(119.68) 11.10.20 36 0
282595 누나가 내 면도기를 쓰기 시작한 이후로, 잔소리가 안먹힘 그래서... [6] [성대아싸]갤로그로 이동합니다. 11.10.20 128 0
282594 나 퇴갤 어떡해갤로그로 이동합니다. 11.10.20 25 0
282593 형들 숭컴인데 자퇴 결심했어.... [3] 레이꼬(121.140) 11.10.20 177 0
282592 형들아 페도라 질문 좀 할께 봐 줘... [6] 분당살람갤로그로 이동합니다. 11.10.20 74 0
282591 여자들은 여자 면도기 쓰시오 [13] 전간디갤로그로 이동합니다. 11.10.20 200 0
282589 어제 이어서... 스택 구현 개념만 알고 바로 된다고?? [13] 우하하(211.60) 11.10.20 168 0
282588 오늘 어떤 사람을 만났는데 [5] 오사카(211.44) 11.10.20 86 0
282587 시험보고왔다!!!! 회색사과갤로그로 이동합니다. 11.10.20 47 0
282584 요새 좋은 아버지가 안 보인다 [5] 전간디갤로그로 이동합니다. 11.10.20 92 0
282583 오늘 장애인 분 만나고 왔음 [2] [성대아싸]갤로그로 이동합니다. 11.10.20 79 0
뉴스 美명문대 자퇴하고 이태원서 DJ한다는 김용만 아들 디시트렌드 14:00
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2