On Sat, 2008-11-01 at 18:08 +1100, Paul Wankadia wrote:
> On Sat, Nov 1, 2008 at 4:08 PM, Ian Kent <[EMAIL PROTECTED]> wrote:
> 
> > Get gdb output with "thr a a bt"
> 
> gdb does not give me any useful output even when I make with DEBUG=1,
> so I used valgrind's memcheck instead.
> 
> ==32474== Process terminating with default action of signal 11
> (SIGSEGV): dumping core
> ==32474==  Bad permissions for mapped region at address 0xFE2FFFFC
> ==32474==    at 0x4C95507: __errno_location (errno-loc.c:36)
> ==32474==    by 0x4CBAC2A: vfprintf (vfprintf.c:222)
> ==32474==    by 0x4CD5EB7: vsprintf (iovsprintf.c:46)
> ==32474==    by 0x4CC37AA: sprintf (sprintf.c:34)
> ==32474==    by 0x157E6: lookup_ghost (lookup.c:616)
> ==32474==    by 0xB74C: mount_autofs_indirect (indirect.c:215)
> ==32474==    by 0x8718: mount_autofs (automount.c:1068)
> ==32474==    by 0x9FA7: handle_mounts (automount.c:1556)
> ==32474==    by 0x4BE7CAB: pthread_start_thread (manager.c:310)
> ==32474==    by 0x4D39129: clone (clone.S:119)
> 
> daemon/lookup.c:
> 
>     598                 me = cache_enumerate(mc, NULL);
>     599                 while (me) {
> ...
>     611                         fullpath = alloca(strlen(me->key) +
> strlen(root) + 3);
>     612                         if (!fullpath) {
>     613                                 warn(ap->logopt, "failed to
> allocate full path");
>     614                                 goto next;
>     615                         }
>     616                         sprintf(fullpath, "%s/%s", root, me->key);
> ...
>     637 next:
>     638                         me = cache_enumerate(mc, me);
>     639                 }
> 
> alloca(3) does not return NULL. After some number of iterations, you
> overflow the stack.

Yeah, that's not good use of alloca, I'll fix it.

Ian


_______________________________________________
autofs mailing list
autofs@linux.kernel.org
http://linux.kernel.org/mailman/listinfo/autofs

Reply via email to