bug in smbcacls

Herb Lewis hlewis at panasas.com
Thu Feb 4 17:31:37 UTC 2016

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?

More information about the samba-technical mailing list