discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GNUstep-corebase to be released next week


From: Sebastian Reitenbach
Subject: Re: GNUstep-corebase to be released next week
Date: Tue, 17 Jul 2012 19:35:28 +0200
User-agent: SOGoMail 1.3.16

 
On Tuesday, July 17, 2012 16:34 CEST, "Sebastian Reitenbach" 
<sebastia@l00-bugdead-prods.de> wrote: 
 
>  Hi Stefan,
> On Tuesday, July 17, 2012 05:26 CEST, Stefan Bidi <stefanbidi@gmail.com> 
> wrote: 
>  
> > All,
> > I've been quite busy over the last few weeks and just now got around
> > to tying all the loose ends for a release of -corebase.  For those of
> > you unfamiliar with the project, GNUstep-corebase is a free
> > implementation of the CoreFoundation framework.
> > 
> > I believe I have fixed all problems reported to me last time.  I was
> > not able to reproduce everybody's specific issue so please run the
> > test suite one last time to check if your problem has, in fact, been
> > resolved.
> > 
> > This version will be release as 0.1 and is to be considered an alpha
> > release.  It requires GNUstep-make, -base and the ICU library.  The
> > release will be licensed under the LGPL v3.
> 
> I ran the test suite on OpenBSD 5.1 i386 and amd64, with objc from gcc 4.2.1.
> GNUstep base last release.
> 
> when compiling on i386, I get this warning:
> cc CFStringFormat.c -c \
>       -MMD -MP -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 
> -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -pthread -pthread -fPIC -DDEBUG 
> -fno-omit-frame-pointer -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -O2 -pipe -g 
> -DBUILDING_SELF -DMAC_OS_X_VERSION_MAX_ALLOWED=100700 
> -I/usr/local/include/ObjectiveC2 -I../Headers -I. -I/usr/local/include 
> -I/corebase-0.1_writes_to_HOME/GNUstep/Library/Headers -I/usr/local/include \
>        -o obj/libgnustep-corebase.obj/CFStringFormat.c.o
> CFStringFormat.c: In function '_CFStringAppendFormatAndArgumentsAux':
> CFStringFormat.c:1057: warning: comparison is always false due to limited 
> range of data type
> 
> other warnings ar only: 
> warning: no newline at end of file
> 
> one failed files, and one dashed hope.
> 
> the backtrace from the failed file (which just segfaulted)
> (gdb) bt
> #0  0x0591d82d in kill () from /usr/lib/libc.so.62.0
> #1  0x0595e3f3 in __stack_smash_handler (func=0x26bf0b08 
> "CFLocaleCopyCalendar", damaged=2124485768) at 
> /usr/src/lib/libc/sys/stack_protector.c:89
> #2  0x06c0ac0d in CFLocaleCopyCalendar (loc=Variable "loc" is not available.
> ) at CFLocale.c:326
> #3  0x06c0ad22 in CFLocaleCopyKeyword (loc=0x83bd79a8, context=0x26bf004c) at 
> CFLocale.c:341
> #4  0x06c0a97f in CFLocaleGetValue (locale=0x83bd79a8, key=0x26bf47e0) at 
> CFLocale.c:743
> #5  0x1c00263d in gnustep_base_user_main () at values.m:36
> #6  0x02dd9b2e in main (argc=1, argv=0x0, env=0x0) at NSProcessInfo.m:989
> #7  0x1c001117 in ___start ()
> #8  0x1c001092 in _start ()
> 
> here on amd64:
> (gdb) bt
> #0  0x00000002082e67aa in kill () from /usr/lib/libc.so.62.0
> #1  0x000000020832568d in __stack_smash_handler (func=0x207900880 
> "CFLocaleCopyCalendar", damaged=Variable "damaged" is not available.
> ) at /usr/src/lib/libc/sys/stack_protector.c:89
> #2  0x00000002077e9f65 in CFLocaleCopyCalendar (loc=Variable "loc" is not 
> available.
> ) at CFLocale.c:326
> #3  0x00000002077ea028 in CFLocaleCopyKeyword (loc=Variable "loc" is not 
> available.
> ) at CFLocale.c:341
> #4  0x00000002077e9d0c in CFLocaleGetValue (locale=0x20900e550, 
> key=0x207a060a0) at CFLocale.c:743
> #5  0x0000000000402b05 in gnustep_base_user_main () at values.m:36
> #6  0x0000000000401791 in ___start ()
> #7  0x0000000000000001 in ?? ()
> #8  0x00007f7ffffe0a18 in ?? ()
> #9  0x0000000000000000 in ?? ()
> 
> 
> It seems, something is overwriting the stack canary.
> 
> icu4c-4.8.1.1       International Components for Unicode

The patch below fixes the problem for me, because a few lines later the 
following happens, which I guess causes the problem:
cLocale = CFLocaleGetCStringIdentifier (loc, buffer, ULOC_FULLNAME_CAPACITY);


--- Source/CFLocale.c.orig      Tue Jul 17 19:23:00 2012
+++ Source/CFLocale.c   Tue Jul 17 19:30:40 2012
@@ -307,7 +307,7 @@ CFLocaleCopyCalendar (CFLocaleRef loc, const void *con
   CFAllocatorRef allocator = CFGetAllocator (loc);
   int len;
   const char *cLocale;
-  char buffer[ULOC_KEYWORDS_CAPACITY];
+  char buffer[ULOC_FULLNAME_CAPACITY];
   char cal[ULOC_KEYWORDS_CAPACITY];
   UErrorCode err = U_ZERO_ERROR;
   



cheers,
Sebastian



reply via email to

[Prev in Thread] Current Thread [Next in Thread]