X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00,SPF_PASS X-Spam-Check-By: sourceware.org Message-ID: <4B162F25.7030906@gmail.com> Date: Wed, 02 Dec 2009 09:11:01 +0000 From: Dave Korn User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: odd segfault with my c program using cygwin 1.7 References: <20071202162155 DOT XNVY20104 DOT mta10 DOT adelphia DOT net AT dual-xeon DOT weasel DOT com> <20091202013344138 DOT XZWP20286 AT cdptpa-omta02 DOT mail DOT rr DOT com> <416096c60912012235h2e5290c3q4ad720134d4f0422 AT mail DOT gmail DOT com> <4B161962 DOT 3090108 AT gmail DOT com> <416096c60912012346j43db4597j2590fa3d9e93ffb7 AT mail DOT gmail DOT com> In-Reply-To: <416096c60912012346j43db4597j2590fa3d9e93ffb7@mail.gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Andy Koppe wrote: > 2009/12/2 Dave Korn: >> Andy Koppe wrote: >>> 2009/12/2 jeffunit: >>>> My program ran fine under cygwin 1.5 as well as many versions of >>>> linux including mandriva 2009, mandriva 2009.1 and mandriva 2010.0 >>>> >>>> When compiled with >>>> gcc cal.c -o cal >>>> and run with >>>> cal 2009 >>>> I get a segmentation fault. >>>> When I uncomment line 62, the program runs successfully. >>> It's the line after that that has the bug: it's writing to index 432 >>> of a 432-element array. >> Doesn't look like it does to me: >> >>> for(j=0; j<6*72; j++) { >>> //printf("joe %d\n", j); >>> string[j] = '\0'; >>> } >> That's less than 432, not less than or equal. > > You're right, somehow I'd completely misread that, thinking that the > string[j]='\0' is outside the loop. Still, it could be some other overflow somewhere else; as I'd guess you were reasoning, that's the commonest reason for this sort of bug that crops up on some platforms with some stack and memory layouts and not others. Jeff, recompile your code, adding the "-g" flag, then run it under gdb, and when the segfault happens, use the "bt" command to get a backtrace and see where you are. cheers, DaveK -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple