bug in smbcacls
Christof Schmitt
cs at samba.org
Fri Feb 5 22:10:23 UTC 2016
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.
Christof
More information about the samba-technical
mailing list