marty wrote:
> Before I dig into the code, this causes a definite problem with my patch and 
> the unpatched
> git version:
> 
> At the end of the file, this works:
> /net    /etc/auto.net
> #
> 
> /-  /etc/auto.direct
> 
> 
> This doesn't work
> net   /etc/auto.net
> 
> /- /etc/auto.direct
> 
> Note the "success" depended on whether the "bad line" was at the end of the 
> file or not...

Don't understand what your saying.
Looks to me the syntax error of no leading "/" causes the master map
read to stop and exit with a fail.

I thought I fixed that ages ago.
I'll have a look again.

> 
> marty
> 
> --- On Sat, 4/11/09, Ian Kent <ra...@themaw.net> wrote:
> From: Ian Kent <ra...@themaw.net>
> Subject: Re: [autofs] automount core's on strdup(NULL)
> To: "Marty Leisner" <leis...@rochester.rr.com>
> Cc: autofs@linux.kernel.org, martyleis...@yahoo.com
> Date: Saturday, April 11, 2009, 11:26 PM
> 
> Marty Leisner wrote:
>> I just installed opensuse 11.1 -- couldn't get autofs to work...
>>
>> I scratched my head - its using 5.03 --so I got 5.04 -- also core (but 
>> I could build it -g).
>>
>> So I got the head of the git tree....same problem...
>>
>> (gdb) bt
>>  #0  0xb7f37743 in strlen () from /lib/libc.so.6
>>  #1  0xb7f37465 in strdup () from /lib/libc.so.6
>>  #2  0xb80abaf5 in master_new_mapent (master=0xb80c4368, path=0x0,
>>      age=1239478044) at master.c:666
>>  #3  0xb80b18ab in master_parse_entry (buffer=0xb80e0aa0 "/net
> /etc/auto.net",
>>      default_timeout=600, logging=0, age=1239478044) at master_parse.y:771
> 
> But buffer is a valid map entry in this case.
> 
> If path ends up as NULL after parsing a valid map entry then we would be
> seeing a lot more problems.
> 
> So what exactly were the circumstances that lead to this?
> 
>>  #4  0xb7eab462 in lookup_read_master (master=0xb80c4368, age=1239478044,
>>      context=0xb80c5430) at lookup_file.c:469
>>  #5  0xb809b744 in do_read_master (master=0xb80c4368, type=0xb80c4458
> "files",
>>      age=1239478044) at lookup.c:96
>>  #6  0xb809b8a9 in read_master_map (master=0xb80c4368, type=0xb80c4458
> "files",
>>      age=1239478044) at lookup.c:135
>>  #7  0xb809bc80 in lookup_nss_read_master (master=0xb80c4368,
> age=1239478044)
>>      at lookup.c:223
>>  #8  0xb80ac1cb in master_read_master (master=0xb80c4368, age=1239478044,
>>      readall=0) at master.c:814
>>  #9  0xb8091e2c in main (argc=0, argv=0xbfcbde40) at automount.c:2094
>>
>> I ended up doing this:
>> : leis...@gateway 03:42:23;rcsdiff -u master.c
>> ===================================================================
>> RCS file: master.c,v
>> retrieving revision 1.1
>> diff -u -r1.1 master.c
>> --- master.c    2009/04/11 19:35:35     1.1
>> +++ master.c    2009/04/11 19:36:20
>> @@ -657,6 +657,9 @@
>>         int status;
>>         char *tmp;
>>
>> +       if(!path)
>> +               return NULL;
>> +
>>         entry = malloc(sizeof(struct master_mapent));
>>         if (!entry)
>>                 return NULL;
>>
>> I think I ended up with a parse error at the end (not sure that was valid
>> when I started -- I had
>> misc  /etc/auto.misc
> 
> If that was the case the master map parser should have caught this as it
> requires a "/" to even get started otherwise it returns a parse
> error.
> 
> We haven't got to the bottom of what caused the problem you saw and
> putting in the check you have above is just going to hide the actual
> problem so it can return to haunt us later.
> 
> Ian
> 
> 
> Ian
> 
> 
> 
> 
>       

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

Reply via email to