mirror of
https://github.com/samba-team/samba.git
synced 2024-12-22 13:34:15 +03:00
s3:mod:posixacl_xattr: use NUMERIC_CMP in posixacl_xattr_entry_compare
The first subtraction was between uint16_t, so is safe with 32 bit int, but the second compared uint32_t, so was not safe. BUG: https://bugzilla.samba.org/show_bug.cgi?id=15625 Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
parent
9b73235d49
commit
8b2605a5d9
@ -226,14 +226,14 @@ static int posixacl_xattr_entry_compare(const void *left, const void *right)
|
||||
tag_left = SVAL(left, 0);
|
||||
tag_right = SVAL(right, 0);
|
||||
|
||||
ret = (tag_left - tag_right);
|
||||
if (!ret) {
|
||||
ret = NUMERIC_CMP(tag_left, tag_right);
|
||||
if (ret == 0) {
|
||||
/* ID is the third element in the entry, after two short
|
||||
integers (tag and perm), i.e at offset 4.
|
||||
*/
|
||||
id_left = IVAL(left, 4);
|
||||
id_right = IVAL(right, 4);
|
||||
ret = id_left - id_right;
|
||||
ret = NUMERIC_CMP(id_left, id_right);
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
Loading…
Reference in New Issue
Block a user