디시인사이드 갤러리

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

갤러리 본문 영역

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

애슬론(121.168) 2009.11.03 20:53:09
조회 2116 추천 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/02 - -
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 68 0
281365 c++ 질문좀 [5] 넥병호갤로그로 이동합니다. 11.10.16 97 0
281364 DB배우는데... [5] 타마마이등병(183.97) 11.10.16 101 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
281360 유즈케이스 질문드립니다. [11] case(121.166) 11.10.16 99 0
281358 소덕을 위한 js 삽질 [4] monoless갤로그로 이동합니다. 11.10.16 112 0
281357 MFC 다이얼로그 픽쳐커트롤 해결즘 해주세용 ㅠㅠ [4] 살려줘 ㅠㅠ(110.5) 11.10.16 128 0
281356 리눅스용 C/C++ IDE 추천좀요 [3] 비밀의계곡갤로그로 이동합니다. 11.10.16 110 0
281354 아오 해결 했음 ㅋㅋㅋㅋㅋ [3] 회색사과갤로그로 이동합니다. 11.10.16 105 0
281353 수습 1개월 월급 받았는데 머좀 물어보자 [6] 1(220.117) 11.10.16 163 0
281352 횽들 나좀 도와줘 [1] 소덕(203.232) 11.10.16 62 0
281350 SI라는거 정확히 머에요? [12] 1234(110.11) 11.10.16 232 0
281349 si업체?업계? 그게 뭐여? 슈퍼맨동생(119.196) 11.10.16 46 0
281348 끄악... 횽들 싱글턴에 대해서 좀 물어볼게 [8] 설치마법사갤로그로 이동합니다. 11.10.16 105 0
281347 아오 쉬바 C에서 char 형 문자열에 0 넣는방법 알아? [4] 나리링갤로그로 이동합니다. 11.10.16 94 0
281346 아 역시 나라에서 맨든 건 달라 [3] 분당살람갤로그로 이동합니다. 11.10.16 93 0
281344 방금 비베글올렸던사람인데요 [1] 비베초보(116.123) 11.10.16 46 0
281343 차단 풀림. [1] 534F444D61737465갤로그로 이동합니다. 11.10.16 44 0
281342 아래 어느 횽이... 수도코드만으로는 당연히 맞대서.. 소스 올림 ㅠㅠ [9] 회색사과갤로그로 이동합니다. 11.10.16 109 0
281341 리처드 스톨만, 데니스 리치, 리누즈 토발즈, 켄 톰슨, 케빈 미트닉 y녀6디리(220.118) 11.10.16 105 0
281340 아옭 ㅋㅋㅋ 재질문 ㅋㅋㅋ [2] 회색사과갤로그로 이동합니다. 11.10.16 56 0
281339 형들 MATLAB sinusoid 더하는것좀 도와주라ㅠ [1] LYRIc(61.105) 11.10.16 26 0
281337 APM 셋업할때 안되는 것들이 잇나요? [2] 한양인데엘카(175.114) 11.10.16 49 0
281336 VHDL 이랑 Verilog랑 둘중 뭐가 배우면 유용할까 g(121.170) 11.10.16 34 0
281335 오픈소스는 근데 도데체 어떻게 관리되는건가요? [2] ㅇㅇㅇㅇ(1.212) 11.10.16 81 0
281332 신입이라면 닷넷,자바 중 어느것을 배워야 할까요? [3] 경험자(58.122) 11.10.16 204 0
281331 형들 책이라는거 말이야... 돌아이바갤로그로 이동합니다. 11.10.16 43 0
281330 이 학원은 안 유명한가요?? [10] 경험자(58.122) 11.10.16 386 0
281329 어느 다중이의 트위터 [1] ㅁㅁ(211.109) 11.10.16 85 0
281328 내 병신 같은 성격의 일부 로하로하알로하갤로그로 이동합니다. 11.10.16 40 0
281327 나도 기분 조옷타! [2] Adelposs갤로그로 이동합니다. 11.10.16 54 0
281325 게임에서 단일서버,단일채널 가능함? [9] 1(125.135) 11.10.16 98 0
281324 뜬금 없는 정치 애기지만 막장갤신학생갤로그로 이동합니다. 11.10.16 41 0
281323 아 근데 망한 게임들 소스 가져와서 짬뽕 시키면 안됨? [8] 1(125.135) 11.10.16 144 0
281322 이야 기분좆타!!! [2] y녀6디리(220.118) 11.10.16 82 0
281321 요새 국내 스타 및 기업 제품 해외 인기에 대한 기사 [5] 전간디갤로그로 이동합니다. 11.10.16 95 0
281320 클라우드 컴퓨팅좀 알려주실분?? [1] NKBK갤로그로 이동합니다. 11.10.16 56 0
281319 이러한 형변환 질문 [2] ㄹㄹㄹ(180.231) 11.10.16 58 0
281318 음 난 어느쪽 편도 아니지만 [6] 분당살람갤로그로 이동합니다. 11.10.16 104 0
281317 테라가 도대체 뭐 때문에 400억이나 들어간거지? [42] 1(125.135) 11.10.16 353 0
281316 형들 c언어에서 함수 강제로 종료시키는 법 있어? [9] ㅇㅇ(119.202) 11.10.16 209 0
281315 형들 이거 한번만 봐줘..곱하기 11은 되는데 곱하기 12가 안돼 ㅋㅋㅋ [4] 회색사과갤로그로 이동합니다. 11.10.16 121 0
281314 한국 도메인 가지고 있는사람 손 ssnim갤로그로 이동합니다. 11.10.16 42 0
281313 컴공과에서 c언어 교과서로 뭐씀? [1] 1(125.135) 11.10.16 144 0
281312 프갤 성님들! RVDS를 이용한 과제해결인데 이상한 오류떠요 [3] 메리프갤로그로 이동합니다. 11.10.16 61 0
281311 손연재인가 하는 [10] 로하로하알로하갤로그로 이동합니다. 11.10.16 195 1
뉴스 ♥이도현은 전역했는데…임지연, ‘8살 연하’ 남배우 입대 소식에 ‘눈물’ 디시트렌드 14:00
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2