디시인사이드 갤러리

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

갤러리 본문 영역

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

애슬론(121.168) 2009.11.03 20:53:09
조회 2121 추천 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/14 - -
AD 디지털 액세서리 기간한정 세일! 운영자 25/07/11 - -
282330 스택에서 [1] 수크라제갤로그로 이동합니다. 11.10.19 55 0
282329 학교다닐 때 수업을 겹쳐서 듣게 되었는데 [4] 전간디갤로그로 이동합니다. 11.10.19 93 0
282328 컴공은 몇학기가 빡셈? [4] 마타버터갤로그로 이동합니다. 11.10.19 108 0
282327 역시 코딩의 기본은 충분한 휴식이다 [2] 전간디갤로그로 이동합니다. 11.10.19 98 0
282325 쿄스케인가 하는병신이 프갤러냐? [2] 뻘찔죶중딩갤로그로 이동합니다. 11.10.19 84 0
282323 스위치문 안좋은거에요? [8] 이힝(121.177) 11.10.19 125 0
282322 그놈의 사례금은 어휴 [13] 로하로하알로하갤로그로 이동합니다. 11.10.19 159 0
282318 프로그래밍 잘하는 분들 좀 도와주세요 [3] --(220.72) 11.10.19 96 0
282316 내가 올해 여름에 거진 두달반 쉬었는데... [1] 꼬꼬월드갤로그로 이동합니다. 11.10.19 60 0
282315 와 근데 프갤러들 다들 키 크네... [7] 꼬꼬월드갤로그로 이동합니다. 11.10.19 121 0
282314 오늘 정치 얘기 많이 나와서 퇴근하고 잠깐 글 써보는데.. [4] 꼬꼬월드갤로그로 이동합니다. 11.10.19 76 0
282313 중고거래 사기꾼 아직도 낚시질이네..ㅋ [2] 이문동쮸쮸바갤로그로 이동합니다. 11.10.19 105 0
282310 프갤에는 오직 0과 1만이 존재 해야 합니다!! [10] 막장갤신학생갤로그로 이동합니다. 11.10.19 131 0
282307 리필은봐라 [3] ㄴㄴㅇ(116.36) 11.10.19 66 0
282305 스택 등 알고리즘이 쉽나요?? [12] 우하하(211.60) 11.10.19 168 0
282304 형들 나 같은 사람은 어떤 언어를 배워야 하지? [14] 알려주라(175.211) 11.10.19 151 0
282303 나 머리 엄청나쁜가 보다. [6] 우하하(211.60) 11.10.19 111 0
282302 스택 기본 연산 구현하는거 힘든데... [6] 우하하(211.60) 11.10.19 97 0
282300 형들 ; 문자열 배열 질문있어. [7] Re-FEEL갤로그로 이동합니다. 11.10.19 85 0
282299 주말에 밤새워가며 과제를 하지만 [7] 김노부관참시갤로그로 이동합니다. 11.10.19 85 0
282298 학기중에 학교에서 배운 책 공부할 때 일일히 구현해보시나요??? [28] 우하하(211.60) 11.10.19 171 0
282297 컨닝하는것들 손모가지다자르고싶다 [1] 즐쿰갤로그로 이동합니다. 11.10.19 52 0
282296 적어도 프갤러들은 이쪽일을 좋아 하는 사람들이 많은듯 하다.. [8] 쿄스케갤로그로 이동합니다. 11.10.19 114 0
282295 내일은 시험이 없고 금요일 하나 남앗으니 카오스나 534F444D61737465갤로그로 이동합니다. 11.10.19 32 0
282294 오늘 술마신 이야기.. [13] 쿄스케갤로그로 이동합니다. 11.10.19 137 0
282293 야 이거 숫자연산 왜 안되냐. [1] 쵸쵸(219.251) 11.10.19 52 0
282292 안드로이드 업로드 테스트 [1] ㅁㄴㄻㄹ갤로그로 이동합니다. 11.10.19 73 0
282290 난 진보적인 국내 인사는 아니지만 스티브 잡스 존경하는데?? [11] 쿄스케갤로그로 이동합니다. 11.10.19 107 0
282289 [어셈블리어] 과제좀 도와주세요 ㅠㅠ [3] 어셈이(112.146) 11.10.19 72 0
282285 개개끼 ㅠㅠ 내가 지잡다녀도 성적장학금 매번 받는데.. [1] 534F444D61737465갤로그로 이동합니다. 11.10.19 74 0
282284 대기업에 취직하는 확실한방법 [2] 수크라제갤로그로 이동합니다. 11.10.19 142 0
282283 곽팀장 너 나 만나지마라 나 만나면... 534F444D61737465갤로그로 이동합니다. 11.10.19 62 0
282282 광역버스는 무슨생각으로 창문을 안만들었지 534F444D61737465갤로그로 이동합니다. 11.10.19 57 0
282281 청정지역 프갤에 벌레가 웬 말이냐 [4] 534F444D61737465갤로그로 이동합니다. 11.10.19 87 0
282280 요즘 디시일베를 퍼가는 사이트가있는데 [4] 으아니(220.121) 11.10.19 90 0
282279 이거 뭐가ㅓ 문제죠"?? [6] Kkobuk갤로그로 이동합니다. 11.10.19 69 0
282278 대기업에 취업하는 100% 알려줌 [3] 三didas갤로그로 이동합니다. 11.10.19 144 0
282277 오늘 대학원 컴터 포맷하고 느낀 점 [3] 분당살람갤로그로 이동합니다. 11.10.19 99 0
282276 [주목]중1이 무슨 바다os에 안드로이드 올린다면서 프로그래머 사칭중!! [3] ㅇㅇㅇㅇㅎㄴ(175.116) 11.10.19 131 0
282275 안녕 프벌레드라 로하로하알로하갤로그로 이동합니다. 11.10.19 39 0
282272 고등학교 자퇴하면 취업 안해주겠찌?? [22] 멀티.갤로그로 이동합니다. 11.10.19 227 0
282271 저녁먹은후엔 남대생.갤로그로 이동합니다. 11.10.19 33 0
282270 c++에서 new와 delete 질문있어!! [2] c언어초보(121.130) 11.10.19 68 0
282269 씨발..삼성전자... [6] 호롤로롤로(14.37) 11.10.19 221 0
282267 정말 징하다... 일광면(119.198) 11.10.19 39 0
282265 PHP / XE 개발자 구함... [1] 등차수열갤로그로 이동합니다. 11.10.19 57 0
282264 내가 분명히 집에서 벌레를 다 잡았거든요!? [2] 일광면(119.198) 11.10.19 61 0
282262 [내용과는 상과없는 짤 有] 외계달팽 횽 결혼하시네 [3] 숙신갤로그로 이동합니다. 11.10.19 82 0
282260 컴퓨터가 이리 뜨거웠어? 튀김도 되네... [3] blackd갤로그로 이동합니다. 11.10.19 111 0
282259 형들은 책에있는거 다구현해봐?? [1] 수크라제갤로그로 이동합니다. 11.10.19 57 0
뉴스 ‘굿보이’ 박보검-김소현-이상이-허성태-태원석, ‘굿벤져스’ 다시 뭉쳐 오정세 본거지 급습! 목숨 건 사투 디시트렌드 14:00
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2