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
[email protected]
http://linux.kernel.org/mailman/listinfo/autofs