디시인사이드 갤러리

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

갤러리 본문 영역

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

애슬론(121.168) 2009.11.03 20:53:09
조회 2106 추천 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
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 연예인 안됐으면 어쩔 뻔, 누가 봐도 천상 연예인은? 운영자 24/06/17 - -
169193 횽들 어스토니시아 스토리라고 기억해?? [10] 개쉛기갤로그로 이동합니다. 10.02.03 209 0
169190 파워포인트좀 물어볼게.. [2] 사정하기직전갤로그로 이동합니다. 10.02.03 80 0
169189 형들 질문이있어요.. [5] 컹컹컹(220.68) 10.02.03 57 0
169188 HTC G1 이거 죤니 괜춘해보인당? [5] 걷는사람갤로그로 이동합니다. 10.02.03 127 0
169187 좃은데? [1] 오사카(119.194) 10.02.03 80 0
169186 간츠는 점점 안드로로 가고. [2] yundream(211.189) 10.02.03 131 0
169185 디지털 셀프 이미지 [4] yundream(211.189) 10.02.03 112 0
169184 얘들아 구글 나이트 안가니? [4] ㅇㅇㅃ갤로그로 이동합니다. 10.02.03 150 0
169183 진지한 질문하나... [2] ㅁㅁ(112.155) 10.02.03 89 0
169182 미래의 프갤러.htm [3] 개쉛기갤로그로 이동합니다. 10.02.03 163 0
169181 아이패드는 별로 안 땡기는데 [3] CSguy갤로그로 이동합니다. 10.02.03 101 0
169180 무릇 프로그래머라면 코드 하나를 짜더라도 예술성을 고려해야 한다. [2] ㅇㅇㅃ갤로그로 이동합니다. 10.02.03 196 0
169178 이 놈의 책저자들은 코딩을 꿈속에서 하나... [5] ㅇㅇ(58.102) 10.02.03 188 0
169177 노새 노새 젊어서 노새. [3] yundream(211.189) 10.02.03 119 0
169175 젊어서 고생은 사서 한다는데 [2] CSguy갤로그로 이동합니다. 10.02.03 92 0
169174 횽들 전세계적으로 아이폰 몇대 팔렸는지 알아? [9] 소쩍궁갤로그로 이동합니다. 10.02.03 200 0
169173 난 경우의 수가 정말 어렵더라 [2] 양희철갤로그로 이동합니다. 10.02.03 105 0
169170 1부터 100까지 더하는 획기적인 알고리즘~~~~~~~~ [7] 물속의다이아갤로그로 이동합니다. 10.02.03 215 0
169168 아침부터 상사에게 연타석으로 깨지고... 우왕ㅋ굳ㅋ [3] 중달(121.166) 10.02.03 109 0
169166 싸이트 만들면 끝날줄 알았는데... 홍보는 어케 해야되냐 ㅠ [8] 소쩍궁갤로그로 이동합니다. 10.02.03 176 0
169163 100까지합 잉여력폭발 [4] 악지갤로그로 이동합니다. 10.02.03 137 0
169157 1 부터 100까지 더한 값 보는데 cpu자원을 얼마나 소모할 셈인가 [1] 카이신갤로그로 이동합니다. 10.02.03 131 0
169156 수강신청 승리 [2] 양희철갤로그로 이동합니다. 10.02.03 152 0
169155 이래서 의학 논문 따위는 믿을게 못된다 [1] ㅎ3(112.222) 10.02.03 84 0
169153 pdf파일 여러장 어떻게 한장으로 합치나요?ㅠㅠ [1] 늅늅(211.189) 10.02.03 631 0
169152 내가 얼마전에 이사를 했는대.. [6] rntjr갤로그로 이동합니다. 10.02.03 139 0
169149 대학등록금은 일괄적으로 인상하는게 옳다고 본다. [2] 개쉛기갤로그로 이동합니다. 10.02.03 105 0
169147 회사에서 쓸 컴터를 내가 살라는데 [11] ㅡㅡ(118.131) 10.02.03 139 0
169145 맥으로 설치파일 어떻게 설치하죠? [1] ㅇㅇㄴ(61.72) 10.02.03 44 0
169144 횽들아. 1부터 100까지 더하는 획기적인 알고리즘이 생각났어 [4] rntjr갤로그로 이동합니다. 10.02.03 181 0
169141 좋은 아침입니다 [1] CSguy갤로그로 이동합니다. 10.02.03 55 0
169140 컴공에서도 computability 같은거 배우나? [11] (87.174) 10.02.03 180 0
169139 결혼 [2] Vita500갤로그로 이동합니다. 10.02.03 101 0
169138 방금 가가채팅에서 여자사람 하나 만났는데.. [6] 골사(221.147) 10.02.03 217 0
169137 날밤 새는 오십만 팩토리알ㄹㄹㄹㄹ [1] dipie갤로그로 이동합니다. 10.02.03 160 0
169136 횽들 홍대 컴공과vs원주연세대 작업치료 [1] 김주윤(121.187) 10.02.03 288 0
169135 내 생각에도 이 말이 맞음 [8] 오사카(119.194) 10.02.03 161 0
169134 안드로이드가 자바기반이면 결국 아이폰보다 속도는 떨어지겠네 [7] 삐오(61.4) 10.02.03 538 0
169133 컴공 1학년 때, 원래 수리, 과학 배우는거? [10] 성식이형(121.181) 10.02.03 222 0
169132 컴공과도 학벌 중요한가요... [15] 성식이형(121.181) 10.02.03 375 0
169131 내일은 이 파일들에 내용을 채워야지 [5] DMW(125.138) 10.02.03 112 0
169130 아직 학부 졸업 안한 횽들~ [2] 메탈스피릿갤로그로 이동합니다. 10.02.03 172 0
169129 이 정도면 악성메일 거의 예술의 경지 아님? [1] 오사카(119.194) 10.02.03 188 0
169127 나 요새 대박.. 골사(221.147) 10.02.03 75 0
169126 e북리더 하나가 눈에 졸 들어와서 기다렸더만. [1] (87.174) 10.02.03 114 0
169125 나도 질렀다 [2] ㅋㅋ(210.117) 10.02.03 126 0
169122 프로그램 배포에 대해 몇가지 궁금한점. [6] 감봉3년(221.147) 10.02.03 80 0
169121 playsound 함수로 wav파일 두개를 동시에 쓸수있나요? sd(211.211) 10.02.03 84 0
169120 하악 잘한다 DMW(125.138) 10.02.03 97 0
169119 이런 상황이면 님들은 어케함? [8] 감봉3년(221.147) 10.02.02 87 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2