[Dnsmasq-discuss] warning: `dnsmasq' uses 32-bit capabilities (re-visited)

Nick Warne nick at linicks.net
Mon Jun 10 09:43:58 BST 2013


On Sun, Jun 09, 2013 at 11:54:47AM +0100, Nick Warne wrote:

> > > > > > I'm mystified. The API hasn't changed in the latest kernel.
> > > > > > 
> > > > > > In src/dnsmasq.c, there's some code that starts
> > > > > > 
> > > > > > determine capability API version here,
> > > > > > 
> > > > > > Can you trace in gdb and see what API version it's getting?
> > > > > 
> > > > > OK, I might need some help here, long time since I used gdb like this - plus as dnsmasq needs root to start, how would I do it?
> > > > > 
> > > > 
> > > > Right, I put a printf in the cap section:
> > > > 
> > > > /dnsmasq-2.66$ sudo src/dnsmasq
> > > > version = 0x20080522
> > > > 
> > > > It finds what looks right to me?
> > > 
> > ...and some more:
> >  
> > before VERSION detection:
> > version = 0x20080522
> > capsize = 0x1
> >  
> > after VERSION detection:
> > version = 0x20080522
> > capsize = 0x2
> >  
> > ...so it's doing what it should do!
> 
> I am just building latest stable kernel, and have made a slight adjustment tyo the code so that the warning message appears everytime dnsmasq starts - so I can easy test now any fixes :)
> 
> For those interested, in kernel/capability.c 'static int warn' is assigned (if (!warn) {blah blah}), and after the warning is issued it gets set to 1;  I changed this to '0' so the warning appears each time now.

OK, red faced here - since I changed the kernel to print the warning each time, I found out what was going on...

An old legacy install of dnsmasq put in a rc.d/rc.dnsmasq start-up script, and it was pointing to the WRONG binary.  I have since flushed my system, built and installed 2.66, changed the start-up script, and all is good :)

Sorry for the noise.

Nick
-- 
Free Software Foundation Associate Member 5508
http://linicks.net/



More information about the Dnsmasq-discuss mailing list