디시인사이드 갤러리

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

갤러리 본문 영역

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

애슬론(121.168) 2009.11.03 20:53:09
조회 2105 추천 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/03 - -
162863 매틀랩 실행을 잠시 멈추려면 어떻게 해야해? 사카린♡갤로그로 이동합니다. 09.12.16 73 0
162861 아래 오류난거 실행 성공 [1] 허허벌판갤로그로 이동합니다. 09.12.16 82 0
162860 오늘 프로그래머, 그런쪽 취업보다가 이런말이 많이 나와서 말인데, [6] ddd(218.101) 09.12.16 237 0
162859 나의 첫 사수... 물속의다이아갤로그로 이동합니다. 09.12.16 81 0
162858 프갤 형님들 맨날 14인치 놋북만 보려니까 눈아퍼서 lcd모니터 지르려는 [14] ㅌㅌ(220.124) 09.12.16 150 0
162857 요즘에 가장 노력하는 부분은... [3] 물속의다이아갤로그로 이동합니다. 09.12.16 85 0
162856 sql 질문~!! [5] dff(123.142) 09.12.16 76 0
162854 80 페이지 코딩의 결과물 [7] 허허벌판갤로그로 이동합니다. 09.12.16 198 0
162853 오늘 JSP와 서블릿 공부한것.. 조언좀 부탁해 횽들 [1] ㅇㅇㅇ(218.101) 09.12.16 106 0
162852 프로그래밍 공부하려면 로크리갤로그로 이동합니다. 09.12.16 47 0
162851 JavaScript 할줄 아나여? [2] 푸버(118.34) 09.12.16 71 0
162850 프로그래밍갤에 능력자횽들 부탁이잇어 [4] 바까스(121.159) 09.12.16 81 0
162849 횽들이 사장이라면 어떤 결정을 내릴까? [6] 물속의다이아갤로그로 이동합니다. 09.12.16 112 0
162848 프로그래밍 시험공부를 하고 있는데... 몇가지 모르는게 있어서 질문좀.. [3] 에효(119.212) 09.12.16 69 0
162847 같은 클래스의 서로 다른 객체끼리 private 멤버접근이 가능해? [3] 양희철갤로그로 이동합니다. 09.12.16 90 0
162845 오늘 공부한것 JSP 조언좀 해줘 [3] ㅇㅇㅇ(218.101) 09.12.16 84 0
162844 레고 사고싶네요ㅋ [2] 3v(211.117) 09.12.16 116 0
162842 한쪽은 C플 다른쪽은 JAVA로 Tcp 소켓 통신할때.. [9] 초밥술사갤로그로 이동합니다. 09.12.16 290 0
162840 4대강 환경 평가 [8] 피로토스갤로그로 이동합니다. 09.12.16 156 0
162838 레고 해본 횽아 있어? [2] 물속의다이아갤로그로 이동합니다. 09.12.16 94 0
162837 소스보면 피로가 풀림? [3] 토오사카갤로그로 이동합니다. 09.12.16 105 0
162835 Visual Assist X 이거 뭥미 꺆 [5] 허허벌판갤로그로 이동합니다. 09.12.16 208 0
162833 VS2008에 Qt 붙여 쓰는대 질문이 이쓰요 [6] 허허벌판갤로그로 이동합니다. 09.12.16 111 0
162830 형님들 pl/sql이랑 자바 공부하려는데 기초책 추천 좀 해줘 [2] 김얄개갤로그로 이동합니다. 09.12.16 169 0
162829 짤방 방출 [1] 유리한갤로그로 이동합니다. 09.12.16 158 0
162827 횽들 좀 도와줘_dsw관련 질문 [6] 돼지바중독갤로그로 이동합니다. 09.12.16 80 0
162826 프갤러를 위한 클래식 [1] algo갤로그로 이동합니다. 09.12.16 73 0
162823 훗 이미 1월 1일부로 인터넷은 정지시켰습니다 [22] algo갤로그로 이동합니다. 09.12.16 210 0
162822 엉엉.. DB에 있는 이미지 파일을 html에 어떻게 출력하징? ㅠㅠ [20] 오버액션.갤로그로 이동합니다. 09.12.16 172 0
162821 읭여의 생일이 다가오고 있어요 [5] ㅇㅇㅃ갤로그로 이동합니다. 09.12.16 98 0
162820 참... 재밌는 친구 많네... [11] 물속의다이아갤로그로 이동합니다. 09.12.16 267 0
162819 새해 계획을 세웠습니다 [10] algo갤로그로 이동합니다. 09.12.16 106 0
162817 누나 생일이 다가오고 있어요 [14] MoonJu(211.115) 09.12.16 180 0
162816 특정 웹싸이트를 차단 하는법을 알고 싶습니당.. [7] qwasd(123.109) 09.12.16 186 0
162815 이정돈 해봐야 직장생활 좀 했다 한다.. [7] rntjr갤로그로 이동합니다. 09.12.16 247 0
162814 후..그럼질문하나만 할게요 ㅠㅠ [7] 공리(192.249) 09.12.16 95 0
162813 html을 이클립스에서 jsp 로 변환시키는 법 아시는분 -_-;; [6] 184cm70kg갤로그로 이동합니다. 09.12.16 277 0
162810 돈 많이 벌면 가장 먼저 하고 싶은 것... [4] 물속의다이아갤로그로 이동합니다. 09.12.16 131 0
162809 횽들 지금 구글 웨이브가 문제가 아니야~ [2] Gromit갤로그로 이동합니다. 09.12.16 125 0
162807 구글웨이브 쓸사람 없나?? [11] 카이신갤로그로 이동합니다. 09.12.16 122 0
162806 구글 웨이브 프겔 그룹 만들자. [1] JuEUS-U갤로그로 이동합니다. 09.12.16 93 0
162804 피로풀기 [4] ...(124.138) 09.12.16 93 0
162803 대한민국 개발 환경에서 경력자로서 꼭 경험해 봐야할 것 [4] 물속의다이아갤로그로 이동합니다. 09.12.16 191 0
162801 개발자라면 퇴직금 및 월급 한번씩 밀려봐야... [6] 물속의다이아갤로그로 이동합니다. 09.12.16 167 0
162799 와 구글 웨이브 괜찮은데?? [10] 캐꼬꼬닭(112.216) 09.12.16 207 0
162798 옛날에 산 컴퓨터 [2] Recursive갤로그로 이동합니다. 09.12.16 115 0
162797 자바 에서 gui잘하시는분있나요 ㅜㅜ [1] sㅜㅜ(121.138) 09.12.16 108 0
162796 시모스 셋업 최적의 부팅순서 [5] washington갤로그로 이동합니다. 09.12.16 1191 0
162795 키뮤식이란? [7] nRST갤로그로 이동합니다. 09.12.16 97 0
162794 횽들 ㅠㅠ 교수님 질문이 이해가 안되 [11] 김김(192.249) 09.12.16 127 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2