bug in smbcacls

Andreas Schneider asn at samba.org
Mon Feb 8 16:24:10 UTC 2016


On Friday 05 February 2016 15:10:23 Christof Schmitt wrote:
> On Thu, Feb 04, 2016 at 10:47:04AM -0700, Christof Schmitt wrote:
> > On Thu, Feb 04, 2016 at 09:31:37AM -0800, Herb Lewis wrote:
> > > In source3/lib/util_sd.c function parse_ace there is the following
> > > line that I think is incorrect
> > > 
> > > if (sscanf(p, "%u/%u/%u", &atype, &aflags, &amask) == 3 &&
> > > 
> > > in the old samba 3.6 code it used to read
> > > 
> > > if (sscanf(p, "%i/%i/%i", &atype, &aflags, &amask) == 3 &&
> > > 
> > > and according to the man page for sscanf the %u is only for decimal
> > > integers while %i also checks for base 16 and base 8 as well. Was there
> > > a reason this was changed so that hex numbers are no longer allowed?
> > 
> > util_sd.c is the result of using common code between smbcacls and
> > sharesec. There is no reason why we would disallow base 16 and base 8; i
> > probably just missed that part. Feel free to send a patch, or i can
> > address this when i have a minute.
> 
> I did a bit more research and the format string for the printf was
> changed in this patch from Andreas:
> 
> commit 4c98b9ce8f8de5883796aa38f1193e04a0ee4e58
> Author: Andreas Schneider <asn at samba.org>
> Date:   Fri Nov 15 17:02:14 2013 +0100
> 
>     s3-utils: Fix scanf format in smbacls.
> 
>     Signed-off-by: Andreas Schneider <asn at samba.org>
>     Reviewed-by: Jeremy Allison <jra at samba.org>
> 
> Andreas, can you explain the reason for this? %i seems to be standard
> POSIX, i don't see why this would be a problem.

I guess Red Hat internal tools discovered the issues and I fixed them. If you 
change the format, make sure the variables used have the correct integer type 
...


	-- andreas


	-- andreas

-- 
Andreas Schneider                   GPG-ID: CC014E3D
Samba Team                             asn at samba.org
www.samba.org



More information about the samba-technical mailing list