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