First Last Prev Next    No search results available      Search page      Enter new bug
Bug#: 87091
Alias:
Product:
Component:
Status: RESOLVED
Resolution: FIXED
Assigned To: Jon Portnoy (RETIRED) <avenj@gentoo.org>
Hardware:
OS:
Version:
Priority:
Severity:
Reporter: Roy Marples (RETIRED) <uberlord@gentoo.org>
Add CC:
CC:
Remove selected CCs
URL:
Summary:
Status Whiteboard:
Keywords:

Filename Description Type Creator Created Size Actions
Create a New Attachment (proposed patch, testcase, etc.) View All

Bug 87091 depends on: Show dependency tree
Bug 87091 blocks: 86718
Votes: 0    Show votes for this bug    Vote for this bug

Additional Comments: (this is where you put emerge --info)


Not eligible to see or edit group visibility for this bug.






View Bug Activity   |   Format For Printing   |   XML   |   Clone This Bug


Description:   Opened: 2005-03-29 03:38 0000
dnsmasq-2.21 causes the following issues on my servers

1) Any client matched in dhcp-host for DHCP requests cause dnsmasq to stop responding to DNS and DHCP requests

2) when mx-host, mx-target or localmx options are set, dnsmasq will go into a infinite loop and not fork to the background when it is started

Reverting back to stable 2.15 or unstable 2.20 fixes the above issues.

------- Comment #1 From rob holland (RETIRED) 2005-03-29 04:26:19 0000 -------
found the --mx-target= bug, waiting for Uberlord to test my fix.

------- Comment #2 From rob holland (RETIRED) 2005-03-29 04:42:24 0000 -------
option.c has:

      if ((daemon->mxtarget || (daemon->options & OPT_LOCALMX)) && !mx)
        {
          daemon->mxnames = safe_malloc(sizeof(struct mx_srv_record));
          daemon->mxnames->next = daemon->mxnames;
          daemon->mxnames->issrv = 0;
          daemon->mxnames->target = NULL;
          daemon->mxnames->name = safe_string_alloc(buff);
        }

and later:

      for (mx = daemon->mxnames; mx; mx = mx->next)
        if (!mx->issrv && !mx->target)
          mx->target = daemon->mxtarget;

This loops forever because mx->next = mx = mx->next as there is no sanity check
for loops (in this case, next=self).

Not quite sure what was meant to happen here, but it seems maybe it should be:

daemon->mxnames->next =  NULL;

instead of

daemon->mxnames->next = daemon->mxnames;

We don't have anyone here who can test this functionality easily, so mailing upstream.

------- Comment #3 From rob holland (RETIRED) 2005-03-29 05:13:22 0000 -------
I can't easily pinpoint the dhcp-host bug because I can't test locally and gdb
wasn't playing nice on Uberlord's machine.

I'll let Simon know about this bug.

------- Comment #4 From rob holland (RETIRED) 2005-03-29 05:16:26 0000 -------
author mailed.

------- Comment #5 From Thierry Carrez (RETIRED) 2005-03-29 10:49:40 0000 -------
dnsmasq should probably be masked until resolution

------- Comment #6 From Thierry Carrez (RETIRED) 2005-03-29 10:51:58 0000 -------
I mean 2.21 should be masked (or keywords reset) until resolution as 2.21 is
the current stable.

------- Comment #7 From rob holland (RETIRED) 2005-03-29 13:20:06 0000 -------
uberlord: please test http://www.thekelleys.org.uk/test

It should definitely fix the mx-host thing and hopefully the dhcp-host stuff as well.

------- Comment #8 From Roy Marples (RETIRED) 2005-03-29 13:53:20 0000 -------
That test version does NOT fix the dhcp-host problem :(
If it helps, here is a line that causes the problem

dhcp-host=00:09:5b:84:88:7d,uberpc,192.168.2.10

Removing that line makes uberpc get a DHCP address correctly and not cause dnsmasq to eat CPU cycles like it's going out of fashion.

------- Comment #9 From Jon Portnoy (RETIRED) 2005-03-29 15:41:13 0000 -------
Bug is more harmful than potential security problems in <=2.20. I've masked
2.21 for now.

------- Comment #10 From Roy Marples (RETIRED) 2005-03-30 02:26:53 0000 -------
The 2.22 test version in comment #7 fixed the mx bug

Just the dhcp-host bug to fix now!

------- Comment #11 From rob holland (RETIRED) 2005-03-30 07:31:18 0000 -------
the dhc-host bug manifests itself at dhcp.c:422

  for (; context; context = context->current)

loops forever. This is another context == context->current thing, same as last one.

Not sure of the fix but I've let the author know.

------- Comment #12 From rob holland (RETIRED) 2005-03-31 07:10:44 0000 -------
test fix version from simon at:

http://thekelleys.org.uk/test/dnsmasq-2.22test7.tar.gz

------- Comment #13 From Roy Marples (RETIRED) 2005-03-31 08:07:48 0000 -------
fix confirmed to work :)

------- Comment #14 From rob holland (RETIRED) 2005-03-31 08:22:19 0000 -------
I've let the author know.

------- Comment #15 From rob holland (RETIRED) 2005-03-31 09:18:01 0000 -------
22 released with the fix.

------- Comment #16 From Jon Portnoy (RETIRED) 2005-03-31 16:30:46 0000 -------
2.22 committed. Thanks Rob!

First Last Prev Next    No search results available      Search page      Enter new bug