[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